11.10.2008

автоматически создаваемые переменные сравнения

use strict;
if ("Hello there, dody" =~ /\s(\w+),/) {
print "matched word - '$&'.\n";
print "all words was - ($`)($&)($').\n";
}

предшествующая строка $` само совпадение $& и следующая строка $'
Вывод:
matched word - ' there,'.
all words was - (Hello)( there,)( dody).

Эти переменные немного тормозят обработку остальных регулярок, поэтому если нужно использовать только $& можно просто заключить всю регулярку в скобки и воспользоваться ссылкой примерно так:
if ("Hello there, dody" =~ /(\s(\w+),)/) {
print "matched word - '$1'.\n";
}

Комментариев нет: