while () { next unless s/^(.*?),\s*//; $pr1{$1} = [ split ]; } #### open (S1, "< /tmp/s1"); while () { next unless s/^(.*?),\s*//; $si1{$1} = [ split ]; } for my $key1 (keys %pr1 ) { for my $key (keys %si1 ) { if (($pr1{$key1} = $sil{$key._ref1}) || $sil{$key}) print "$key: $key1\n";