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 #### Note that if you're storing FILEHANDLES in an array or other expression, you will have to use a block returning its value instead: print { $files[$i] } "stuff\n"; print { $OK ? STDOUT : STDERR } "stuff\n";