use strict;
use vars qw($obj);
use Carp qw(carp croak cluck confess);
use Cwd;
sub TIESCALAR { my $var; carp "tie:\t",\$var," = $_[0]\n"; bless \$var
+ => shift; }
sub FETCH { carp "fetch:\t$_[0] == ${$_[0]}\n"; ${$_[0]} }
sub STORE { carp "store:\t$_[0] = $_[1]\n"; ${$_[0]} = $_[1]}
tie $obj => 'main';
$obj = 'foo';
{
my $x = 1;
my $y = $obj;
local $obj = 'bar';
}
### OUTPUT ###
tie: SCALAR(0x8106d78) = main
main::TIESCALAR('main') called at - line 10
store: main=SCALAR(0x8106d78) = foo
main::STORE('main=SCALAR(0x8106d78)', 'foo') called at - line
+11
fetch: main=SCALAR(0x8106d78) == foo
main::FETCH('main=SCALAR(0x8106d78)') called at - line 14
fetch: main=SCALAR(0x8106d78) == foo
main::FETCH('main=SCALAR(0x8106d78)') called at - line 15
store: main=SCALAR(0x8106d78) =
main::STORE('main=SCALAR(0x8106d78)', undef) called at - line
+15
store: main=SCALAR(0x8106d78) = bar
main::STORE('main=SCALAR(0x8106d78)', 'bar') called at - line
+15
store: main=SCALAR(0x8106d78) = foo
main::STORE('main=SCALAR(0x8106d78)', 'foo') called at - line
+13
|