use strict; use warnings; my ($f1,$f2,%patts,$f2_rec,$f2_field); $f1 = $ARGV[0]; $f2 = $ARGV[1]; open(PATT,"<", $f1) or die; while () { chomp; $patts{substr $_, 0, 3} = 1; } close(PATT) or die; open(FILE,"<", $f2) or die; while (defined ($f2_rec = )) { chomp $f2_rec; $f2_field = (split(/ /,$f2_rec))[1]; $f2_field = substr $f2_field, 0, 3; if(exists($patts{$f2_field})) { print "$f2_rec\n"; } } close(FILE) or die;