Есть текст, в котором нужно выделить все совпадения с вот таким шаблоном "aaa(.+?)bbb(.+?)ccc" и распечатать $1/$2 соответственно. Так вот почему если сделать так:
@Links = $TMP=~/aaa(.+?)bbb(.+?)ccc/g;
join("\n",@Links);
то всё нормально, а если сразу, без перехода к массиву, т.е. вот так:
foreach ($TMP=~/aaa(.+?)bbb(.+?)ccc/g)
{
print $1."\n".$2."\n";
}
то распечатается одно и тоже (последнее) совпадение с шаблоном столько раз, сколько совпадение найдено.
Я понимаю, что в случае foreach, видимо, каждый раз выполняется сопоставление и печатается одно и тоже, но не пойму логику работы перла в случае перехода к массиву. Ведь модификатор /g есть и там и там..