use Modern::Perl; use warnings FATAL => qw{ uninitialized }; my $abc = "ABC"; my $def = "DEF"; ## no $ghi is defined. my $jkl = 0; my $funnystring = 'hello $abc and $def and $ghi and $jkl'; $funnystring =~ s/(\$\w+)/defined eval $1 ? eval $1 : "unknown $1" /ge; print $funnystring;