#!/usr/bin/perl use strict; use warnings; my $regex_cache = {}; die "Usage $0 [CAC TTT ]\n" if ( @ARGV % 2 ); my %input = @ARGV; # Where the input would be : CAC 2 TTT 2 my $data_set = ; for my $in ( keys %input ) { my $reg_key = "($in)\{$input{$in}\}"; my $reg = $regex_cache->{$in} ||= qr/($reg_key)/s; print "$1\n" if ( $data_set =~ $reg ); } __DATA__ ATCACCACTTCCTGGACACTACCCTAAACCTTTGAGGA AATAACCGCTTTGTTGTTGCGATCGCCTAATAAATATC AGCGTCTTCGTATGATAAACCAATGCGGAAGTACAAAA #### print$_ for(map{chr($_)}split(/\s+/,join(/\B?:\w+[^\s+]/,))); __DATA__ 67 111 100 101 32 80 101 114 108