use Regexp::Assemble; my $ra = Regexp::Assemble->new; $ra->add ($_) for @matchArray; my $re = $ra->re; @ARGV = ('filename'); $^I = '.bak'; while (<>) { print if m/$re/; }