Как подсчитать перекрывающиеся подстроки в Perl?

Мне нужно реализовать программу для подсчета вхождения подстроки в строку в Perl. я реализовал это следующим образом

sub countnmstr
{
  $count =0;
  $count++ while $_[0] =~ /$_[1]/g;
  return $count;
}

$count = countnmstr("aaa","aa");

print "$count\n";

теперь это то, что я обычно делаю. однако в приведенной выше реализации я хочу посчитать вхождение 'aa' в 'aaa'. здесь я получаю ответ как 1, который кажется разумным, но мне нужно рассмотреть также и перекрывающиеся случаи. следовательно, вышеупомянутый случай должен дать ответ как 2, так как есть два «аа», если мы рассматриваем перекрытие.

Кто-нибудь может подсказать, как реализовать такую функцию ??

Ответы на вопрос(6)

Ваш ответ на вопрос