===package Spy; use strict; sub TIESCALAR { my ($Pkg,$Name,$Val)=@_; my $Obj=[$Name,$Val]; return bless $Obj,$Pkg; } sub FETCH { my ($Obj)=@_; print STDERR "Fetched ",$Obj->[1]||'undef'," from ",$Obj->[0],"\n"; return $Obj->[1]; } sub STORE { my ($Obj,$Val)=@_; print STDERR "Stored ",$Val||'undef'," in ",$Obj->[0],"\n"; return $Obj->[1]=$Val; } 1;
===#!/usr/bin/perl -w use strict; use Spy; my ($Var1,$Var2); tie $Var1,'Spy','Var1'; tie $Var2,'Spy','Var2'; ($Var1,$Var2)=(37332,666); print "Assigning \$Var2 to \$Var1, result: ", $Var1=$Var2,"\n"; # Humming 'Twilight Zone' for $Var2 (1..5) { $Var1=$Var2; print STDERR "$Var1\n"; $Var2="Test"; }; print "$Var2\n";
martijnb@xxx$ ./test Stored 37332 in Var1 Stored 666 in Var2 Fetched 666 from Var2 Stored 666 in Var1 Fetched 666 from Var1 Assigning $Var2 to $Var1, result: 666 Stored 1 in Var1 Fetched 1 from Var1 1 Stored 2 in Var1 Fetched 2 from Var1 2 Stored 3 in Var1 Fetched 3 from Var1 3 Stored 4 in Var1 Fetched 4 from Var1 4 Stored 5 in Var1 Fetched 5 from Var1 5 Fetched 666 from Var2 666
In reply to How Tied/Tight is it ? by ChOas
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |