>perl -wMstrict -le "my $valid_string = qr{ \A [ACGT]+ \z }xms; ;; for my $user_subseq (qw(AAA AAC ACA CAA ABC)) { validate($user_subseq, $valid_string); my $n = 0; for my $string (qw(AAAAA AAACACA CAACAAA)) { $n +=()= $string =~ m{ (?= ($user_subseq)) }xmsg; } print qq{in all strings, '$user_subseq' = $n}; } ;; sub validate { my ($user_supplied_string, $valid) = @_; return if $user_supplied_string =~ $valid; die qq{bad user supplied string '$user_supplied_string'} } " in all strings, 'AAA' = 5 in all strings, 'AAC' = 2 in all strings, 'ACA' = 3 in all strings, 'CAA' = 2 bad user supplied string 'ABC' at -e line 1.