in reply to Filehandles when Open Fails

my intuition from C, where filehandles are NULL when fopen fails

That's because fopen returns the "file handle": it can only use that to indicate an error, all the arguments are const. C has no choice. If you think about it, perl open returning false on error is the same as C fopen, which also returns false on error.