my $greet = "Hello World";
eval '
print "$greet\n";
';
####
eval 'print "$gr' . 'eet\n";';
####
my $name = $greet;
eval 'print "$' . $name . '\n";';
####
$ perl -E'
use warnings; use strict;
sub f { my $n="ok"; sub { eval q{$n} } }
say f->()
'
Variable "$n" is not available at (eval 1) line 2.
Use of uninitialized value in say at -e line 4.
$ perl -E'
use warnings; use strict;
sub f { my $n="ok"; sub { $n; eval q{$n} } }
say f->()
'
Useless use of private variable in void context at -e line 3.
ok
$ perl -E'
use warnings; use strict;
sub f { my $n="ok"; sub { $n if 0; eval q{$n} } }
say f->()
'
ok