$ perl -MO=Deparse,-p -le " print grep( not $foo{$_} , @bar )" Not enough arguments for grep at -e line 1, near "@bar ) " -e had compilation errors. BEGIN { $/ = "\n"; $\ = "\n"; } print(grep); $ perl -MO=Deparse,-p -le " print grep( !$foo{$_} , @bar )" BEGIN { $/ = "\n"; $\ = "\n"; } print(grep((!$foo{$_}), @bar)); -e syntax OK $ perl -MO=Deparse,-p -le " print grep( not( $foo{$_}) , @bar )" BEGIN { $/ = "\n"; $\ = "\n"; } print(grep((!$foo{$_}), @bar)); -e syntax OK