Dear Monks
Recently, I have done some reading regarding "Tie" in perl. And I have an question:
package Tie::Constvar; use Carp; sub TIESCALAR { my ($class, $initval) = @_; my $var = $initval; return bless \$var => $class; } sub FETCH { my $selfref = shift; return $$selfref; } sub STORE { confess "cannot assign value to a constant!"; } package main; tie my $AVO, Tie::Constvar, 6; print $AVO,"\n"; tie $AVO, Tie::Constvar, 3; #this works print $AVO,"\n"; $AVO = 3; #this will throw an exception! print $AVO,"\n";
As you can see that we cannot assign a value to "$AVO" as "$AVO = 3". This is expected. However, after I "Tied" $AVO to 6, I can "Tie" it again with 3 which didn't generate any error.
This made me wonder if Tying a variable is not considered "assignment".
So, how does the tied variable associate with its underlying returned object by "TIESCALAR"? It seems a hash like association. Is this right?
Does anyone have any insight on this? Thank you
In reply to question regarding "Tie" in Perl by lightoverhead
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |