Как подсчитать перекрывающиеся подстроки в Perl?
Мне нужно реализовать программу для подсчета вхождения подстроки в строку в Perl. я реализовал это следующим образом
sub countnmstr
{
$count =0;
$count++ while $_[0] =~ /$_[1]/g;
return $count;
}
$count = countnmstr("aaa","aa");
print "$count\n";
теперь это то, что я обычно делаю. однако в приведенной выше реализации я хочу посчитать вхождение 'aa' в 'aaa'. здесь я получаю ответ как 1, который кажется разумным, но мне нужно рассмотреть также и перекрывающиеся случаи. следовательно, вышеупомянутый случай должен дать ответ как 2, так как есть два «аа», если мы рассматриваем перекрытие.
Кто-нибудь может подсказать, как реализовать такую функцию ??