|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Igor Gerdler 2:5020/400 05 Apr 2002 17:11:00 To : Artem Chuprina Subject : Мнение и вопрос -------------------------------------------------------------------------------- e.ru> From: "Igor Gerdler" <perl@doreworld.com> Добрый день, уважаемый Артем! > Проблема в том, что проверка аргументов у push как-то неочевидно > взаимодействует с определением типа результата у ?:. push хочет lvalue array и > соответственно пробрасывает туда списковый контекст. Hо проверка аргументов > почему-то не может сообразить, что в соответствующей ситуации получится lvalue > array. Конструкция /a/?@a:@b не работает во всех функциях, в которых нужно передать ARRAY в качестве параметра (push,pop,shift...). Мне кажется, что интерпретатор просто не может определить тип контекста, ведь во всех остальных случаях конструкция работает. В perlfaq4 нашел следующий пример: push @{ $count{$element} > 1 ? \@intersection : \@difference}, $element; И в заключение еще вопрос: > Проблема в том, что проверка аргументов у push как-то неочевидно > взаимодействует с определением типа результата у ?:. push хочет lvalue array Как интерпретатор может определить, что функция требует lvalue? Всего доброго! Игорь Гердлер --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65779cb92bc0.html, оценка из 5, голосов 10
|