#!/usr/bin/perl -w open file1,"1.txt" or die qq {cannot read "$file1":$!}; open file2,"2.txt" or die qq {cannot read "$file2":$!}; @lines = <file2>; @patterns = <file1>; for($i=0;$i<=$#lines;$i++) { for($k=0;$k<=$#patterns;$k++) { $str = $patterns[$k]; $str=~s/\n|\r$//g; if ($lines[$i] =~ /$str/) { print $lines[$i]; } } }