in reply to compare text files

G'day linseyr,

Welcome to the monastery.

This works with the data you've provided.

#!/usr/bin/env perl use strict; use warnings; my %least_ref; open my $reference, '<', $ARGV[0] or die "Can't open reference ($ARGV[ +0]): $!"; while (<$reference>) { my ($key, $val) = split; if (not exists $least_ref{$key} or $val < $least_ref{$key}) { $least_ref{$key} = $val; } } close $reference; open my $testfile, '<', $ARGV[1] or die "Can't open testfile ($ARGV[1] +): $!"; while (<$testfile>) { my ($key, $val) = split; print "$key\t", $least_ref{$key} - $val, "\n"; } close $testfile;

Input files:

$ cat > pm_least_diff.ref chr1 40 chr1 50 chr2 60 chr2 80 chr3 100
$ cat > pm_least_diff.test chr1 30 chr2 20 chr2 50 chr3 80

Script output:

$ pm_least_diff.pl pm_least_diff.ref pm_least_diff.test chr1 10 chr2 40 chr2 10 chr3 20

-- Ken