in reply to Re^2: Insane (?) Regexp-based jpeg (JFIF) extractor...
in thread Insane (?) Regexp-based jpeg (JFIF) extractor...

By the way, I found open doesn't work on open(my $fh, '-') either.

Replies are listed 'Best First'.
Re^4: Insane (?) Regexp-based jpeg (JFIF) extractor...
by blazar (Canon) on Nov 05, 2008 at 13:08 UTC

    I personally believe this is too bad. In principle it's such a wonderful pragma! Perhaps you should file a bug report. As far as open not affecting *ARGV is concerned, I would still consider that a bug too, since the documentation clearly says:

    The open pragma serves as one of the interfaces to declare default "layers" (also known as "disciplines") for all I/O.

    (Additional emphasis is mine.)

    OTOH, it also says:

    Any two-argument open(), readpipe() (aka qx//) and similar operators found within the lexical scope of this pragma will use the declared defaults. Even three-argument opens may be affected by this pragma when they don't specify IO layers in MODE.

    (Additional emphasis is mine.)

    Here, it is to be noticed that:

    • it talks of "two-argument open(), readpipe() (aka qx//) and similar operators found [...]" which may be interpreted to exclude implicit "versions" of the same functions/operators;
    • that emphasized "may" is at most ambiguous and I would like to know which is the actual behaviour.

    As far as the second point is concerned, I also think that it would be more reasonable to have three-argument opens always alway affected by the pragma, since it just "declares default "layers" for all I/O" and IMHO if they specify IO layers in MODE, then the latter ones should be simply stacked over the default ones.

    If you can't understand the incipit, then please check the IPB Campaign.