----
@a1 = ('one','two','three');
$b1 = @a1;
$a2 = ('one','two','three');
print @a1."\n";
print $b1."\n";
print $a2."\n";
-------
Такой код выводит
3
3
three
Значение "3" выводится потому, что массив интерпретируется в скалярном контексте и в этом контексте возвращается число элементов массива.
Вопрос: почему выводится three? Ведь ('one','two','three') - список, который должен быть интерпретирован в скалярном контексте, следовательно я ожидал от него 3.
Вот здесь можно потестить: codepad.org/NIkJL6qW