Отметим, что оператор построения списка (,) выглядит точно так же, как оператор (,) последовательного вычисления ( sequential evaluation ). Какой из операторов используется, зависит от контекста, в котором он появляется, в частности, является ли переменная скаляром или массивом. Perl использует конструирование списков в контексте массивов и последовательное вычисление для скаляров.
Рассмотрим следующие выражения:
@an_array = (1,2,3,4,5);
$a_scalar = (1,2,3,4,5);
В первом выражении инициализируется массив, в то время как второе выражение устанавливает значение скалярной переменной $ a _ scalar равным 5, отбрасывая первые четыре величины.
Рассмотрим два следующих выражения:
print $assoc{1,2};
print @assoc{1,2};
В первом случае будет напечатано одно значение ассоциативного массива с двумя ключами, в то время как во втором будут напечатаны два значения ассоциативного массива с одним ключом.
Из двух следующих выражений первое копирует список, тогда как второе присваивает скалярной величине значение, равное размеру массива:
@ x = @ list ;
$ x = @ list ;