NAME Time::Traveler - Allows "retroactive" changes of variables aka values are not evaluated immediately. DESCRIPTION This module allows you to use overloaded values to delay when a value's value is actually computed. I wrote this so I could return a value from one of my functions to some user code and later change my mind about the value I should have returned. SYNOPSIS $val = "Sally is a goober"; $_ = Time::Traveler->new( $val ); $val = "I will not insult Sally.\n" x 100; print; # Shows the updated $val, not the original $val. Methods Time::Traveler->new( $val ) You are expected to pass in a single variable to the method. Time::Traveler will take a reference to this value so that if you change its value later, Time::Traveler will use that new value instead of your original value. The *only* correct way to use this is to pass in a variable. You may pass in constants or the result of expressions but they can't be altered later because you aren't going to be sharing a reference with Time::Traveler. Ok. $elt1 = Time::Traveler->new( $h->{ 'foo' } ); $elt2 = Time::Traveler->new( $ary[ 10000 ] ); $elt3 = Time::Traveler->new( $var ); Not ok. $elt4 = Time::Traveler->new( 42 ); $elt5 = Time::Traveler->new( foo() ); AUTHOR Joshua ben Jore, "" BUGS Please report any bugs or feature requests to "bug-time-traveler@rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. ACKNOWLEDGEMENTS Corion of perlmonks.org COPYRIGHT & LICENSE Copyright 2005 Joshua ben Jore, All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.