use v5.14; open(TEST,'<',"test.txt") or die $!; my @test_data = ; close(TEST); open(REFERENCE,'<',"reference.txt") or die $!; my @reference_data = ; close(REFERENCE); my @results; for my $line(@test_data){ my $lesser_val = 9999999999999999; my($chr,$val) = split(/ /,$line); for my $ref_line(@reference_data){ my($ref_chr,$ref_val) = split(/ /,$ref_line); if($ref_chr eq $chr){ $lesser_val = ($ref_val-$val) if ($ref_val-$val < $lesser_val); } } push(@results,"$chr $lesser_val"); } say foreach @results;