in reply to opening remote files

It is possible if the remote file is on something like a nfs filesystem or a smb share. Out of the box, open() is restricted to the local filesystem.

You could overload open() to use LWP, download to a temporary location and open the file there. If you do that, I think

use URI; sub URI::open { use LWP; # fetch to /tmp and open # beware error conditions, # net adds a lot of new ones }
would be a reasonable start. You might want to write a module subclassing URI instead.

In my own code, I'd reserve open() for local operations.

After Compline,
Zaxo