регулярные выражения и $1
От: slava_phirsov Россия  
Дата: 07.06.10 09:52
Оценка:
Доброго времени суток всем читающим!

ActivePerl 5.8.9 Win32

Имеем вот такой пример кода:

my @foo = split '', 'foo bar buzz';
my $bar = '';
my $re = qr/(.*)u/;

until ($bar =~ $re)
{
    $bar .= shift @foo;
    print $bar . "\n";
}

print "\$1 is undef\n" unless defined $1;
print "\$1 is $1\n" if ($bar =~ $re);


который выводит вот что:

f
fo
foo
foo
foo b
foo ba
foo bar
foo bar
foo bar b
foo bar bu
$1 is undef
$1 is foo bar b


Выражение в цикле until совпало, но $1 осталось неопределенным ( ), однако совпадение того же самого выражения ниже нормально модифицировало $1. Это лыжи не едут, или как?

Заранее благодарю.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
perl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.