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


in reply to Re^6: 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.

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.