in reply to how to find common and not common lines in 2 files?

Here's a one liner (at least the real work is done in one line) that will get the job done. It ties all three files to arrays and then greps through them to find the common ones.

use strict; use Tie::File; tie my @f1, 'Tie::File', 'file1.txt' or die; tie my @f2, 'Tie::File', 'file2.txt' or die; tie my @f3, 'Tie::File', 'file3.txt' or die; @f1 = grep { my $word = $_; my $size = $#f2; @f2 = grep { if ($_ eq $word) { push @f3, $_; 0 } else { 1 } } @f2; $size == $#f2; } @f1;

Outputs the following for your example files:

file1.txt

three four five six seven

file2.txt

nine eleven twenty thirty forty

file3.txt

one two