blazar has asked for the wisdom of the Perl Monks concerning the following question:
It seems that if the MODE parameter in a three args open contains IO layers and the third one is a scalar reference, then the latter is not open()ed in memory, but its stringification is interpreted as a filename:
picard:~ [10:30:46]$ perl -MFatal=open -e 'open F, "<", \"foo"' picard:~ [10:31:02]$ ^<^<:raw perl -MFatal=open -e 'open F, "<:raw", \"foo"' Can't open(F, <:raw, SCALAR(0x814fe04)): No such file or directory at +(eval 1) line 3 main::__ANON__('F', '<:raw', 'SCALAR(0x814fe04)') called at -e + line 1
and
picard:~ [10:35:09]$ perl -MFatal=open -e 'open F, ">", \$a' picard:~ [10:35:11]$ ^>^>:raw perl -MFatal=open -e 'open F, ">:raw", \$a' picard:~ [10:35:34]$ ls SCALAR\(0x814fe04\) SCALAR(0x814fe04)
Is this expected, documented, etc? I don't see anything in open()'s documentation to this effect...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Clash between IO layers and "in memory" files?
by almut (Canon) on Mar 29, 2007 at 13:08 UTC | |
by blazar (Canon) on Mar 29, 2007 at 13:49 UTC | |
|
Re: Clash between IO layers and "in memory" files?
by Anno (Deacon) on Mar 29, 2007 at 09:11 UTC | |
by blazar (Canon) on Mar 29, 2007 at 12:38 UTC | |
|
Re: Clash between IO layers and "in memory" files?
by sgt (Deacon) on Mar 29, 2007 at 13:30 UTC |