undef は想像以上に柔軟でした。
以下のエラーは知っていたのです。
$ perl -Mstrict my $hoge = undef; print join(',', @$hoge); Can't use an undefined value as an ARRAY reference at - line 2.
でも、以下がwarningすら出ないのは意外。
$ perl -Mstrict my $hoge = undef; $hoge->[0] = 'item1'; $hoge->[1] = 'item2'; $hoge->[2] = 'item3'; print join(',', @$hoge); item1,item2,item3
こっちもOK。
$ perl -Mstrict my $hoge = undef; @$hoge = ('item1', 'item2'); print join(',', @$hoge); item1,item2
代入に関しては、自動的に配列リファレンスを作ってくれるみたいですね。