----
@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