in reply to an ever-available file for opening

I would expect $0 always to be available. The documentation for it in perlvar is all about what happens if you try to modify it and nothing about any situation where it's not there or not correct.

I'm trying to think of a situation where you'd be running a program and not have access to the file that it's in. Basically this would be a strange security/permissions situation. For example, your program ran as root and then dropped privileges.

All that having been said, if I were testing open, I'd probably use -r to make sure I could open the file first. See also stat.