[Moscow.pm] Странности и неожиданности Perl

Alex Kapranoff alex на kapranoff.ru
Вс Мар 9 08:20:07 PDT 2008


В Вск, 09/03/2008 в 17:28 +0300, Ivan B. Serezhkin пишет:
> >> qw волшебным образом сразу превращается в ('',), а оно в скалярном 
> >> контексте ведёт себя не совсем как список.
> >
> > Почему не совсем?
> >   
> потому что оно ведёт себя как (el1,el2, ... ), а не как @array

Я только хотел сказать, что списки всегда ведут себя так -- в отличие от
массивов :)

Мне кажется, что удобно объяснять это так: массив -- вид переменной, а
список -- вид выражения. Списки часто используются для конструирования
значений массивов, поэтому возникает такая путаница. Интересно, что в
Camel Book всё объясняется:
http://www.unix.org.ua/orelly/perl/prog3/ch02_08.htm

А тот факт, что смартмэтчинг рассматривает списки иначе чем массивы или
ссылки на массивы, мне лично кажется багом^H^H^H излишним умничаньем :)
Получается, что аргументы-списки он вычисляет в скалярном контексте, а
аргументы-массивы -- в списковом. Так?



Подробная информация о списке рассылки Moscow-pm