Чтобы основываться на ответе Криса, вероятно, наиболее уместно включить регулярное выражение //g
в цикл while
, например:
my @matches;
while ( 'foobarbaz' =~ m/([aeiou])/g )
{
push @matches, $1;
}
Вставка некоторых быстрых операций ввода-вывода Python:
>>> import re
>>> re.findall(r'([aeiou])([nrs])','I had a sandwich for lunch')
[('a', 'n'), ('o', 'r'), ('u', 'n')]
Чтобы получить что-то сопоставимое в Perl, конструкция может выглядеть примерно так:
my $matches = [];
while ( 'I had a sandwich for lunch' =~ m/([aeiou])([nrs])/g )
{
push @$matches, [$1,$2];
}
Но в целом, какую бы функцию вы ни выполняли, вы, вероятно, можете выполнять ее внутри самого цикла while
.