|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 05 Apr 2002 17:04:49 To : Artem Chuprina Subject : Re: Возражения -------------------------------------------------------------------------------- e.ru> From: Andrey Sapozhnikov <sapa@icb.chel.su> Artem Chuprina wrote: > Проблема в том, что проверка аргументов у push как-то неочевидно > взаимодействует с определением типа результата у ?:. push хочет lvalue array и > соответственно пробрасывает туда списковый контекст. Hо проверка аргументов > почему-то не может сообразить, что в соответствующей ситуации получится lvalue > array. Видел бы ты как эта проверка организована (кстати она размазана по нескольким функциям, для внутренних функций одно, для user-defined - другое) :( Я сделал патч для 5.7.3, который позволяет нормально разруливать такие аргументы. Мало того, это добавляет новую функциональность при использовании нового типа прототипов - составного. Hу и заодно немножко порядка добавил... Т.е. для: sub mysub (\[$@%]) { print "You passed: ", ref($_[0]), "\n"; } теперь можно будет использовать: mysub $onlyone?$name:$indexed?%names:@names; а, скажем: mysub $onlyone?$name:$indexed?%names:@names[0..10]; будет честно давать ошибку при компиляции. Сейчас оформлю и отсылаю патч разработчикам. Андрей P.S. To Bulat Ziganshin: > ... Иногда для того, чтобы изменить свое восприятие мира, > ... люди пытаются изменить сам мир О, да! :) --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/52845f291e6c.html, оценка из 5, голосов 10
|