Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Determining indirect filehandles

by chipmunk (Parson)
on Jan 23, 2002 at 10:02 UTC ( #140839=note: print w/replies, xml ) Need Help??

in reply to Determining indirect filehandles

Hmm, this doesn't seem to be working for me in all cases.

When $fh is a filehandle opened on something like a pipe, on which one cannot seek, the seek fails so it seems as if $fh is not a filehandle. $! holds the reason ("Illegal seek"), and $@ is empty.

If $fh holds a number or a string, the seek fails, but does not die, so again $! holds the reason ("Bad file number") and $@ is empty.

If $fh holds a reference to a something other than a glob or filehandle object, the seek does die, and $@ holds "Not a GLOB reference...", as intended.

I'm not sure how one would distinguish easily between the first two cases, other than by examining $!, which wouldn't be portable.

Replies are listed 'Best First'.
Re: Re: Determining indirect filehandles
by Masem (Monsignor) on Jan 23, 2002 at 19:44 UTC
    Gah, you're right. I didn't test the seek solution with any pipes, and while I did test things like array refs, I didn't test it with scalars directly (mostly because in the app that I want this for, I've already removed scalars from the possible values this snippet would have gotten). However, looking around, it does look like fileno does the trick; pipes are properly recognized, but anything that's not a filehandle triggers a warning. So eval'ing that away captures non-filehandles correctly - at least, as best as I can tell. Snippet above has been updated to reflect this.

    Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain
    "I can see my house from here!"
    It's not what you know, but knowing how to find it if you don't know that's important

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://140839]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2020-01-28 07:24 GMT
Find Nodes?
    Voting Booth?