$ cat ./746989.pl my $filename = shift; if ($line = /something/) { } foreach (@arr) { if (/abc/) { print; } } sub foo { my $x = shift; } $ $ perl -MO=Deparse ./746989.pl my $filename = shift @ARGV; if ($line = /something/) { (); } foreach $_ (@arr) { if (/abc/) { print $_; } } sub foo { my $x = shift @_; } ./746989.pl syntax OK $ $ perl -v This is perl, v5.8.5 built for x86_64-linux-thread-multi