my $t = 'test'; print eval '$t'; # test #### my $t1 = 'test1'; sub show { print eval "\$$_" for @_; } my $t2 = 'test2'; show(qw( t1 t2 )); # test1, but not test2 #### { my $t = 'test'; sub show { print eval "\$$_" for @_; } } show(qw( t )); # Nothing #### { my $t = 'test'; sub foo { $t } sub show { print eval "\$$_" for @_; } } show(qw( t )); # Nothing #### { my $t = 'test'; sub show { $t; print eval "\$$_" for @_; } } show(qw( t )); # test