for my $ID1 (keys %bow1) { for my $ID2 (keys %bow2) { ... #### open (my $fh2, '<', "$file2") || die "Failed to open $file2 for reading : $!"; ...do stuff... close $fh2 || die "Failed to close $file2 : $!";