On Thu, 22 Mar 2012 20:06:35 -0400 Uri Guttman <u...@stemsystems.com> wrote:
> On 03/22/2012 05:49 PM, Manfred Lotz wrote: > > > > > In documentation about 'open' I found: > > > > 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"; > > > > > > So it seems that it is perhaps a good style to use parenthesis > > anyhow. > > > > first off, those are called braces or curly braces, not parens. given > 3 (or 4 if you count <>) paired chars all of which are heavily used > in perl, it is important to use the proper names. > Thanks for amplifing this. As a non English speaker I wasn't careful here. > secondly, the docs don't say you should use braces for print handles, > only you need them if your handle is something other than a single > scalar value. no one uses braces for single scalar handles in > general. I understood what the docs said. I only made an assumption which you say is wrong. My idea behind using always braces was that then I'm always sure Perl does the right thing. > in fact there are many ways to print and indirect handles is > a weak style IMO. OO style is cleaner (you need to load IO::File or > IO::Handle). you can select the new handle with select() and later > reselect STDOUT (there are idioms and modules for this). > As long as I use the "three-argument" form of open I don't see any reason not to use open (at least in small scripts). -- Manfred -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/