in reply to Re^2: blocks and using braces around filehandles with print
in thread blocks and using braces around filehandles with print

A block is 'code' in this case code that returns a file handle - see how perl deparse's the above code and puts a semicolon before the right curly brace in the code below:
$ perl -MO=Deparse fh.pl
die "Ouch. $!" unless open my $fh, '>', 'foo.txt'; print {$fh;} "hi!\n"; close $fh;
fh.pl syntax OK
(there are probably other methods that you can use to have perl show you what it is "thinking")
perldoc -f print does mention the blocks
Note that if you're storing FILEHANDLEs in an array, or if you're using any other expression more complex than a scalar variable to retrieve it, you will have to use a block returning the filehandle value instead: print { $files[$i] } "stuff\n"; print { $OK ? STDOUT : STDERR } "stuff\n";