in reply to Re: Using pack/unpack on a PNG file
in thread Using pack/unpack on a PNG file

Documented behaviour:
(...) if FILEHANDLE is an expression, its value is the real filehandle. (This is considered a symbolic reference, so use strict "refs" should not be in effect.)

system 'echo abc > 1.txt'; open '<:raw', '1.txt' or die $!; print while readline '<:raw'; unlink '1.txt';
Update: I wouldn't recomend it, though, as it's confusing to a reader :-) The file is still opened with default layers:
print PerlIO::get_layers("<:raw"); # unixperlio
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^3: Using pack/unpack on a PNG file
by AnomalousMonk (Archbishop) on May 26, 2015 at 07:24 UTC
    This is considered a symbolic reference, so use strict "refs" should not be in effect.

    Yes, but if strictures are enabled the example still runs (and strictures were also enabled above), so I'm still confused:

    c:\@Work\Perl\monks\sierpinski>perl -wMstrict -le "system 'echo abc > 1.txt'; open '<:raw', '1.txt' or die $!; print while readline '<:raw'; " abc

    Update: I wouldn't recomend it, though, as it's confusing to a reader ... Darn right!


    Give a man a fish:  <%-(-(-(-<

      We aren't trying to explicitly dereference the symbolic reference.
      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

        Aha! ... Oh? Hmmm..., I'll have to think about that for a bit.


        Give a man a fish:  <%-(-(-(-<