in reply to Merging two lists

use strict; use warnings; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my @lines1 = split /\n/, <<EOF; car coord bike 0.6 car random cat 0.1 car mero door 0.6 EOF my @lines2 = split /\n/, <<EOF; truck random dog 0.3 truck mero door 0.5 EOF my %data; for (@lines1, @lines2) { my ($k1, $k2, $v) = (split)[1 .. 3]; my $k = "$k1 $k2"; if (exists $data{$k}) { $data{$k} = $v if $data{$k} > $v; } else { $data{$k} = $v; } } print Dumper(\%data); __END__ $VAR1 = { 'coord bike' => '0.6', 'mero door' => '0.5', 'random cat' => '0.1', 'random dog' => '0.3' };