my %f1; while () { chomp; my @fields = split /\|/; my @col3 = split /\s+/, $fields[2]; $f1{lc $fields[0]} = [$col3[0], $col3[2]]; } while () { chomp; my @fields = split /\s*\|\s*/; my $name = lc $fields[0]; print "line $.: Name $fields[0] "; if (exists $f1{$name}) { if ($fields[1] == $f1{$name}[0] && $fields[3] == $f1{$name}[1] ) { print "matched.\n"; } else { print "found but not matched.\n"; } } else { print "not found.\n"; } }