$ perl -wMstrict -e 'BEGIN { package blah; *::x=sub{} } x' $ perl -wMstrict -e 'BEGIN { *::x=sub{} } x' $ perl -wMstrict -e 'BEGIN { package blah; *::x=\$a } $x++' $ perl -wMstrict -e 'BEGIN { *::x=\$a } $x++' Variable "$x" is not imported at -e line 1. Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at -e line 1. Execution of -e aborted due to compilation errors.