|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 05 Apr 2002 16:33:56 To : "Igor Gerdler" Subject : Re: Возражения -------------------------------------------------------------------------------- Здравствуй, Igor Gerdler. IG> > The operator may be assigned to if both the 2nd and 3rd IG> > arguments are legal lvalues IG> Это к push не относится. И где у Андрея пример, который работает иначе? Это к ?: относится. IG> > Scalar or list context propagates downward into the 2nd or IG> > 3rd argument, whichever is selected. И это тоже. IG> > и IG> > push ARRAY,LIST IG> Может я не умею между строк читать, но где написано, что контекст для IG> первого аргумента списковый? Он может еще быть неопределенным (void). Ведь IG> когда мы явно указываем списковый контекст "push(@{\(/a/?@a:@b)}, $_) IG> foreach @list;" Все работает! Проблема в том, что проверка аргументов у push как-то неочевидно взаимодействует с определением типа результата у ?:. push хочет lvalue array и соответственно пробрасывает туда списковый контекст. Hо проверка аргументов почему-то не может сообразить, что в соответствующей ситуации получится lvalue array. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1445486844b1b.html, оценка из 5, голосов 10
|