|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 10 Dec 2002 21:38:11 To : Alexey Mahotkin Subject : Re: Работа с HTML --------------------------------------------------------------------------------
Alexey Mahotkin wrote:
[вышенаписанная ерунда поскипана]
> Hапример.
>
> my $x = 1;
>
> {
> local $x = 10; # теперь $x равен 10; старое значение, единица,
> запомнено $x++; # теперь он равен одиннадцати } # здесь
> восстанавливается старое значение # здесь $x опять равен единице --alexm P.S.:
> объявлять переменные с помощью local ты не можешь. Под use strict и -w
> компилятор сообщит о неизвестной переменной, если ты не объявишь её с помощью
> my.
Все это неправда. Прежде чем учить кого-либо подучите Perl сами.
local предназначен для локализации глобальных переменных (а также
glob-ов, элементов хешей...). Попробуйте Ваш пример и Вы получите:
Can't localize lexical variable $x at ...
Что совершенно резонно, ибо local scope переменные не имеют имен
на этапе выполнения и, соответственно, не имеют записей в стэшах.
Для "локализациии" в вашем примере вторую переменную $x нужно
просто описать как my. Более подробно об использовании local()
можно прочитать в главе: Temporary Values via local()
perldoc perlsub.
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577eaf6c6e5.html, оценка из 5, голосов 10
|