use Regexp::Assemble; my @search_patterns = ( 'CACGTG', 'GTGCAC' ); my $ra = Regexp::Assemble->new; $ra->add( @search_patterns ); while ( $seq =~ /$ra/g ) { ... }