sub ModName::TIESCALAR { my $class = shift; my $self; return bless(\$self, $class); } sub test { tie $_[0], 'ModName'; } my $var; print(tied($var) ? 'tied' : 'not tied', "\n"); # not tied test($var); print(tied($var) ? 'tied' : 'not tied', "\n"); # tied #### sub ModName::TIESCALAR { my $class = shift; my $self; return bless(\$self, $class); } sub test { my $var; tie $var, 'ModName'; return \$var; } my $ref = test(); print(tied($$ref) ? 'tied' : 'not tied', "\n"); # tied #### sub ModName::TIESCALAR { my $class = shift; my $self; return bless(\$self, $class); } sub ModName::FETCH { } tie my $src, 'ModName'; print(tied($src) ? 'tied' : 'not tied', "\n"); # tied my $dst = $src; print(tied($dst) ? 'tied' : 'not tied', "\n"); # not tied