{ 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