У меня создается впечатление что некоторые предприятия (например: JackBe) вставленный зашифрованный код JavaScript *.gif файлы, а не файлы JS, как дополнительная мера путаницы.
Может быть, вы можете предложить лучшую формулировку документации. Под динамической областью подразумевается все до начала включающего блока или подпрограммы, плюс все до начала этого блока или вызова подпрограммы и т. Д. за исключением , что любые закрытые блоки исключаются.
Другой способ скажите это: «последние успешные под совпадения в текущей активной динамической области» означают неявно local $ x = $ x;
в начале каждого блока для каждой переменной.
Большинство упоминаний о динамическая область видимости (например, http://perldoc.perl.org/perlglossary.html#scope или http://perldoc.perl.org/perlglossary.html#dynamic-scoping )
подходят к нему с другой стороны. Они применимы, если вы думаете об успешном
регулярное выражение как неявное выполнение локального $ 1
и т. д.
I am not sure there is any real reason to be this paranoid about all these variables. I have managed to use Perl for almost ten years without once needing to use an explicit local
in this context.
The answer to your specific question is: The number of digit variables is not a given (even though there is a hard memory limit to how many matches you can work with). So, it is not possible to localize all of them at the same time.
Я думаю, вы слишком беспокоитесь. Лучше всего запустить оператор сопоставления, немедленно сохранить нужные значения в значимых переменных, а затем позволить специальным переменным делать то, что они делают, не беспокоясь о них:
if( $string =~ m/...(a.c).../ ) {
my $found = $1;
}
Когда я хочу захватить части строк, я больше всего часто используйте оператор соответствия в контексте списка, чтобы получить список воспоминаний:
my @array = $string =~ m/..../g;