# assumes that duplicates in first file should be ignored. my %wanted; open my $in, '<', '$file1' or die "$!\n"; while (my $line = <$in>) { chomp $line); $wanted{$line}++; } #### my $foo = (split /|/, $line)[1]; #### print OUT $line if $wanted{$foo};