my @nosuch = qw[ nosuchfile ]; system {$nosuch[0]} @nosuch; printf qq{\$?(%d)=(%s)\n\$!(%d)=(%s)\n\n}, $?,$?,$!,$!; system @nosuch; printf qq{\$?(%d)=(%s)\n\$!(%d)=(%s)\n\n}, $?,$?,$!,$!; __END__ $?(65280)=(65280) $!(2)=(No such file or directory) 'nosuchfile' is not recognized as an internal or external command, operable program or batch file. $?(256)=(256) $!(2)=(No such file or directory)