$ perl -wMstrict -le 'open local *HMD, ">", \(my $x) or die $!; print HND "Foo"; close HND; print "Done"'; echo $? Name "main::HMD" used only once: possible typo at -e line 1. print() on unopened filehandle HND at -e line 2. Done 0 $ perl -wMstrict -le 'open my $hmd, ">", \(my $x) or die $!; print $hnd "Foo"; close $hnd; print "Done"'; echo $? Global symbol "$hnd" requires explicit package name (did you forget to declare "my $hnd"?) at -e line 2. Global symbol "$hnd" requires explicit package name (did you forget to declare "my $hnd"?) at -e line 2. Execution of -e aborted due to compilation errors. 255