my %firstDataSet; foreach (my $line = ) { my @data = split /\s+/, $line; $hash{$data[0]}{$data[1]} = $data[2]; } foreach (my $line = ) { my @data = split /\s+/, $line; if ($hash{$data[0]}{$data[1]}) { print OUT_FILE "$data[0] $data[1] $hash{$data[0]}{$data[1]} $data[2]\n"; } }