in reply to comprehensive error handling
open (...) or ($errormsg = $!, $status = -1); [download]
open (...) or do { $errormsg = $!; $status = -1; } [download]
Makeshifts last the longest.