|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexey Mahotkin 2:5020/400 10 Dec 2002 22:41:44 To : Andrey Sapozhnikov Subject : Re: Работа с HTML -------------------------------------------------------------------------------- >>>>> "AS" == Andrey Sapozhnikov <sapa@icb.chel.su> writes: AS> Все это неправда. Прежде чем учить кого-либо подучите Perl сами. AS> local предназначен для локализации глобальных переменных (а также AS> glob-ов, элементов хешей...). Попробуйте Ваш пример и Вы получите: AS> Can't localize lexical variable $x at ... >> Wow! Как же сильно сосёт перл! AS> Это что же он сосет? Большое время, само собой. AS> Все предельно логично и правильно. Ибо переменные AS> типа local scope (описанные как my) анонимны на этапе исполнения (а AS> локализация есть процесс подмены переменной с неким именем ее AS> временным заменителем с _тем_же_именем_ именно на этапе AS> выполнения). Преобразование имени в адрес у них происходит на этапе AS> компиляции, что дает большой выигрыш в скорости, возможность сокрытия AS> переменных в closures и еще ряд полезных эффектов. Глобальных и AS> локальных переменных они не отменяют, однако резко сокращают AS> надобность в последних. Мне кажется, что если бы local работал с лексическими переменными так, как это указано в моём примере, то это было бы вполне в духе перла. DWIM. То есть local в данном случае являлся бы синонимом my и не привносил бы никаких динамических эффектов. Просто та ветка кода, в которой говорится "Can't localize...", стала бы делать вместо этого что-то полезное. --alexm --- ifmail v.2.15dev5 * Origin: tyranny (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16984d7bb1c36.html, оценка из 5, голосов 10
|