#! perl -slw use strict; <> for 1 .. 2; ## discard headers ## Read ranges stdin my @ranges = map { [ (split)[3,5] ] } <>; print "$_ : [ @{ $ranges[ $_ ]} ]" for 0 .. $#ranges; my @overlaps; for my $i1 ( 0 .. $#ranges ) { for my $i2 ( $i1+1 .. $#ranges ) { unless( $ranges[ $i1 ][ 0 ] > $ranges[ $i2 ][ 1 ] or $ranges[ $i1 ][ 1 ] < $ranges[ $i2 ][ 0 ] ) { push @{ $overlaps[ $i1 ] }, $i2; } } } defined $overlaps[ $_ ] and print "$_ overlaps with @{ $overlaps[ $_ ] }" for 0 .. $#overlaps;