В этом фрагменте кода сдвиг используется дважды, несмотря на то, что метод принимает только один параметр:
sub regexVerify ($)
{
my $re = shift;
return sub
{
local $_ = shift;
m/$re/ ? $_ : undef;
};
}
Что это делает значение локального $_, когда сдвиг используется снова? Я (возможно, наивно) предполагал, что переход в небытие приведет к undef. Но если бы это было правдой, эта строка не имела бы смысла, верно?:
m/$re/ ? $_ : undef;
Вышеупомянутая подпрограмма называется так:
regexVerify (qr/^([a-z].*)?$/i);
undef
. - person ikegami   schedule 06.06.2013