#! perl -sl use strict; use warnings; X::test(); { package X; $FRED = 'fred'; sub test { print 'This is package:', __PACKAGE__; } 1; } #### C:\test>perl -c test.pl Global symbol "$FRED" requires explicit package name at test.pl line 10. test.pl had compilation errors. #### #! perl -sl { package X; $FRED = 'fred'; sub test { print 'This is package:', __PACKAGE__; } 1; } use strict; use warnings; X::test(); #### C:\test>perl -c test.pl test.pl syntax OK