For starters, I would recommend that you test for a filehandle before you try opening it as a file.
Now, having said that, there shouldn't be very many ways in which you would get a scalar that holds a reference to a filehandle. I'm hoping that there is some degree of control over the calling syntax of your routine. In general, if your scalar is a reference to GLOB or something that derives from it (test with "UNIVERSAL::isa($file_or_handle, 'GLOB')"), then it's a filehandle. This will hold true for objects instantiated from the IO::File class (or any of the IO::Handle tree).
And if that test returns false, then you are free to open it as a file. Pending tests for validity, of course :-).
--rjray
In reply to Re: test if a scalar contains a filename or a filehandle?
by rjray
in thread test if a scalar contains a filename or a filehandle?
by mull
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |