sub int_monitor (\$ ) :lvalue { my $var=shift; print "$var\n"; $$var }; int_monitor(my $foo) = 14; print "$foo\n"; (int_monitor my $bar) = 15; print "$bar\n"; #### sub int_monitor (\$;$) { my $var=shift; print "$var\n"; $$var=shift if @_ }; int_monitor my $foo => 14; print "$foo\n";