use IPC::Run3 'run3'; run3 ['powershell', '-Command', 'Invoke-WebRequest', '-Uri', $uri, '-OutFile', $filename, '-UseDefaultCredentials']; $? and die "run3 failed with \$?=$?";