use strict; use warnings; use Data::Dumper; my $minimum_difference = 10; my $input_filename = 'e_d.txt'; open(my $input_fh, '<', $input_filename) or die "$input_filename: $!"; my $previous_fields; while (my $line = <$input_fh>) { chomp($line); my $fields = [ split(/\t/, $line) ]; if( defined($previous_fields) and $previous_fields->[0] eq $fields->[0] and $previous_fields->[1] ne $fields->[1] and $previous_fields->[-2] - $fields->[-2] < $minimum_difference ) { print "Failed test:\n" . Dumper([ $previous_fields, $fields ]) . "\n\n"; } $previous_fields = $fields; }