You're trying to do something that's a little bit nasty, and rather than tell you how to do that, I'm going to suggest an alternative.
If you need multiple filehandles open at once, then what you need is a hash:
my %file_handle_for;
for my $i ( 1..$#genome_list ) {
open ( $file_handle_for{$i}, '<', "filename$i" ) or die $!;
}
Then you can just access the file as:
print {$file_handle_for{$i}} "Some text\n";
Or:
while ( <{$file_handle_for{$i}}> ) {
print;
}
etc.
That's assuming of course, you need to open all your files concurrently, which you may well not need to.
The above is the general solution to wanting to use variables as variable names.
Looking at it in your case though - you're opening files in numeric order with no gaps, and that means an array is better suited.
my @filehandle_for;
#note though - arrays start at zero normally, so you might be missing one here!
foreach my $number ( 1..$#genome_list ) {
open ( $filehandle_for[$number], '<', "filename$number" ) or die $!;
}