use strict; use strict; use warnings; my %file2; open my $file2, '<', '/tmp/dog.txt' or die "Couldn't open file2: $!"; while ( my $line = <$file2> ) { ++$file2{$line}; } open my $file1, '<', '/tmp/cat.txt' or die "Couldn't open file1: $!"; while ( my $line = <$file1> ) { print $line if $file2{$line}; }