use strict; use warnings; my @files = qw(file1 file2 file3); my @fh; foreach my $i (0..$#files) { open($fh[$i], $files[$i]) or die "open '$files[$i]': $!"; } foreach my $fh (@fh) { while(<$fh>) { print; } } foreach my $i (0..$#files) { close($fh[$i]) or die "close '$files[$i]': $!"; }