Это разве что пример того, как происходит неявное преобразование в строки. Да, неявных преобразований там тьма-тьмущая, и Perl предпочитает не выдавать ошибок, но компилятор в нём всё-таки есть, и он следит за типами — по-своему. Без use strict!
$perl 1.pl Not a HASH reference at 1.pl line 3. ARRAY(0xdd9718)
Можно написать пример посложнее, на классах (package octopus; my octopus $found_pearl; ...). Статическая типизация в нём есть, просто она включается ну очень редко.
no subject
Date: 2011-03-26 07:55 am (UTC)$octopus = [{tentacles => 1}];
print $octopus;
$octopus -> {noses} = 1;
$perl 1.pl
Not a HASH reference at 1.pl line 3.
ARRAY(0xdd9718)
Можно написать пример посложнее, на классах (package octopus; my octopus $found_pearl; ...). Статическая типизация в нём есть, просто она включается ну очень редко.