use strict; use warnings; #NOT TESTED my %filehash; for ($i=1; $i<=$number; $i++) { my $filename = "file$i"; open (lookup, "<$filename") or die "Can't open $filename : $!\n"; while () { ($ref_name, $ref_id) = (split /\t/, $_)[3,4]; $filehash{$filename}{$ref_id} = $ref_name; } }