От: | anonymous | http://denis.ibaev.name/ | |
Дата: | 07.06.10 10:53 | ||
Оценка: | 7 (2) |
_>until ($bar =~ $re)
_>{
_> $bar .= shift @foo;
_> print $bar . "\n";
_>}
_>
То есть происходит следующее: выражение совпадает с шаблоном, мы выходим из блока, и там, вне блока, уже совсем другая переменная $1. (На самом деле та же самая, но значения у неё уже не будет.)The numbered match variables ($1, $2, $3, etc.) and the related punctuation set ($+, $&, $`, $', and $^N) are all dynamically scoped until the end of the enclosing block or until the next successful match, whichever comes first.
until ($bar =~ $re and print($1))
{
$bar .= shift @foo;
print $bar . "\n";
}