package Tie::Scalar::Yell; sub TIESCALAR { bless \my $x, shift } sub STORE { ${ $_[0] } = $_[1] } sub FETCH { warn "accessed\n"; return ${ $_[0] }; } package main; tie my $x, 'Tie::Scalar::Yell'; $x = 'yeller'; print "yeller: $x\n"; # accessed here copier( $x ); sub copier { my $arg = shift; # accessed here print "my arg once: $arg\n"; # ...or here print "my arg twice: $arg\n"; # here? } __END__ accessed yeller: yeller accessed my arg once: yeller my arg twice: yeller