in reply to Re: Re: Re: how can i use one handle for multifple files
in thread how can i use one handle for multifple files
This can be worked around by wrapping your lexical file handles with curlies print {$fh} 'Stuff to print';
Eg.
D:\Perl\test>type temp2.pl8 #! perl -slw use strict; my @handles; open $handles[$_], '>', "test$_.dat" for 0 .. 3; print {$handles[$_]} 'Some text' for 0 .. 3; for( @handles ) { print {$_} 'Some more text'; } D:\Perl\test>temp2.pl8 D:\Perl\test>type test*.dat test0.dat Some text Some more text test1.dat Some text Some more text test2.dat Some text Some more text test3.dat Some text Some more text
You can also use this to store your file handles in a hash which can be useful. You can even use an anonymous block to determine which handle to use at runtime. From perlfunc:print (>5.6?)
Note that if you're storing FILEHANDLES in an array or other expressio +n, you will have to use a block returning its value instead: print { $files[$i] } "stuff\n"; print { $OK ? STDOUT : STDERR } "stuff\n";
|
|---|