my @array = ('file', 'this', 'dog', 'forward'); my %guard; open IN, $Filename or die "$!: $Filename\n"; print join(' ', map { my $line = $_; grep {!exists $guard{$_} and $line =~/$_/ and $guard{$_}=1} @array; } ), "\n"; close IN;