in reply to Re^2: diamond operator question
in thread diamond operator question

I suppose they could have done that, but I can't comment on why they didn't. It would have to be able to detect whether it was working on a filehandle created by open or a dir handle created by opendir, but I guess that's not unreasonable.


s^^unp(;75N=&9I<V@`ack(u,^;s|\(.+\`|"$`$'\"$&\"\)"|ee;/m.+h/&&print$&

Replies are listed 'Best First'.
Re^4: diamond operator question
by Tomtom (Scribe) on Jun 09, 2005 at 12:55 UTC
    Excuse me for keeping asking questions about this :) but it's for my own curiosity :

    What could be the different ways to detect the kind of filehandle, to know if it was opened by open or opendir ?
    Apparently, the following quote :
    "DIRHANDLEs have their own namespace separate from FILEHANDLEs." (source)
    could help detecting whether it was opened by open or opendir.
    But when I do something like the following code to see the difference between the two namespaces, I get the same result for both of them.
    open(DIR, './random_file'); print 'open : ', *main::DIR{NAME}, ' - ', *main::DIR{PACKAGE}, "\n"; opendir (DIR, '.'); print 'opendir : ', *main::DIR{NAME}, ' - ', *main::DIR{PACKAGE}, "\n" +;
    Am I doing something wrong, or is there another way to differentiate the namespaces of the handles ?
    Or could it be the version of Perl I'm using ( 5.005 ) ?

    Thanks