|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 03 Apr 2002 19:00:53 To : Bulat Ziganshin Subject : Re: Hебольшой вопрос --------------------------------------------------------------------------------
Bulat Ziganshin wrote:
> * Originally in RU.PERL
> Приятного тебе дня и незабываемой ночи, Andrey!
>
> Wednesday April 03 2002, Andrey Sapozhnikov writes to Artem Chuprina:
> AS> push(/a/?@a:@b, $_) foreach @list;
> AS> # Error: Type of arg 1 to push must be array (not null operation)...
> AS> # контроль прототипов не пустил?
> AS> # Ведь может определить, что это ARRAY (см. пример 1), но не делает.
>
> AS> push(@{\(/a/?@a:@b)}, $_) foreach @list;
> AS> # И это тоже работает как положено.
> AS> # "Бессмысленный" reference-dereference
> AS> # заставил поверить, что это ARRAY?
>
> в перле есть такая фишка - тип выражения (скаляр/массив/хеш) определяется его
> синтаксисом. т.е. @... - всегда массив, а $... - всегда скаляр. видиом, тип ?:
> определён как "всегда скаляр" вместо анализа операндов или run-time
> определения, чего в перле вообще не предусмтрено
Все предусмотрено. См. первый пример, он работает нормально.
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5284992ce422.html, оценка из 5, голосов 10
|