http://www.perlmonks.org?node_id=1003616


in reply to Re^5: Split output by tabs
in thread Split output by tabs

And now try it with
my %handle = ( out => *STDOUT, err => *STDERR ); print {$handle{out}} "Test\n"; # Not possible without braces.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^7: Split output by tabs
by shmem (Chancellor) on Nov 13, 2012 at 14:20 UTC
    And now try it with
    my %handle = ( out => *STDOUT, err => *STDERR ); print {$handle{out}} "Test\n"; # Not possible without braces.

    This is one of the rare cases, in which a BLOCK (which returns a file handle) is needed. For such a rare case, which anyways would have better been written as

    my %handle = ( out => *STDOUT, err => *STDERR ); my $fh = $handle{out}; print $fh "Test\n"; # Look, ma! no curlies at all.

    the appropriate syntax is glorified as "Best Practice"! Oh my.

Re^7: Split output by tabs
by Anonymous Monk on Nov 13, 2012 at 15:06 UTC
    Why? An exception does not make the rule