$ perl -wMstrict -e 'BEGIN { package blah; *::x=\$::y } $x++' Name "main::y" used only once: possible typo at -e line 1. $ perl -wMstrict -e 'BEGIN { *::x=\$::y } $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.