|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 02 Apr 2002 23:40:48 To : Igor Gerdler Subject : Re: В заключение дискуссии -------------------------------------------------------------------------------- su> <a89vsi$2e02$1@ddt.demos.su> <3CA88A4B.5020008@icb.chel.su> su> <a8bl0q$1acr$1@ddt.demos.su> <3CA990AE.9050102@icb.chel.su> su> <a8cmv8$mb3$1@ddt.demos.su> <3CA9E49E.1020404@icb.chel.su> su> <a8cr0m$1a5i$1@ddt.demos.su> From: "Andrey Sapozhnikov" <sapa@icb.chel.su> "Igor Gerdler" <perl@doreworld.com> wrote in message news:a8cr0m$1a5i$1@ddt.demos.su... > Добрый день, уважаемый Андрей! > Следуя Вашей идеологии, придется дописывать perlref, т.к. строка > $a = 'слово'; > не может рассматриваться как присваивание скалярной переменной $a (которая в > данном случае является lvalue) строки символов "слово". Она должна быть > интерпретирована как копирование в область памяти по ссылке, взятой из > таблицы символов текущего пространства имен для имени "a" данных из области > памяти, выделенной для неизменяемых данных программы. Именно так оно и есть, но perlref дописывать ни к чему. Достаточно почитать perldoc perldata и, если не удовлетворило, perldoc perlguts. Там описана структура таблицы символов, и тип данных typeglob хранящий в себе те самые "скрытые ссылки". посему: $a='слово' (в пространстве имен main) это то же, что и my $ref_to_scalar_a = *{$main::{'a'}}{SCALAR}; ${$ref_to_scalar} = 'слово'; > Я согласен, что на низком уровне рассмотрения работы программы происходит > именно так, как Вы написали, но такое рассмотрение было бы уместно в С, а к > Perl, как мне кажется, оно, по возможности, не должно применяться. Должен применяться тот уровень абстракции которого хватает для решения конкретной задачи. Зачастую требуется и глубокий. Все зависит от задачи и уровня знаний программиста. Hе хватает знаний - придется зазубрить. 1. ARRAY есть lvalue 2. оператор ? : возвращает lvalue если его аргументы lvalues 3. функция push первым параметром требует ARRAY И после этого можете не вникать - почему. Андрей P.S. Я так не понял, зачем Вы затеяли данную дискуссию и что именно Вы недопоняли. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/657701cbd617.html, оценка из 5, голосов 10
|