OUTER: while( ) { chomp; my( $atag, $astart, $aend, $mess ) = split "\t"; next unless exists $main{ $atag }; for my $md ( @{ $main{ $atag } } ) { my( $mtag, $mstart, $mend ) = split "\t", $md; if( ?OVERLAPPED? ) { print OUTPUT "$atag\t$mess"; } } }