in reply to
Regex: finding all possible substrings
use strict;
use Data::Dumper;
use List::MapMulti 'iterator_multi';
my @userDefined = qw(AAA AAC ACA CAA);
my $string = 'AAAAA AAACACA CAACAAA';
my %results = map { $_ => 0; } @userDefined;
my $iter = iterator_multi [0..length($string)-1], [1..length($string)]
+;
while (my ($start, $end) = $iter->())
{
next unless $end > $start;
my $substr = substr $string, $start, ($end - $start);
$results{$substr}++ if exists $results{$substr};
}
print Dumper \%results;
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'