my %fh; for my $i ( 2, 3 ) { my $fname = sprintf( "T%dT.txt", $i ); open( $fh{$fname}, "<", $fname ) or die "$fname: $!\n"; } # you now have multiple file handles indexed by file name in %fh