{
my $var = 'this string';
sub test1 { print("var = $var\n"); }
sub test2 { eval(' print("var = $var\n"); '); }
sub test3 { $var; eval(' print("var = $var\n"); '); }
}
test1(); # var = this string
test2(); # var = (undef)
test3(); # var = this string
####
# Module.pm
pacakge Module;
my $var = 'this string';
sub test1 { print("var = $var\n"); }
sub test2 { eval(' print("var = $var\n"); '); }
sub test3 { $var; eval(' print("var = $var\n"); '); }
####
# script.pl
use Module;
Module::test1(); # var = this string
Module::test2(); # var = (undef)
Module::test3(); # var = this string