無名ハッシュのコンストラクタとブロック
Perlだとどちらも {} で表される。区別はコンテキストで行ってる?
sub retarrayref { my @array = ( 1,2,3,4 ); \@array; } my $rarray = {retarrayref()};#どうやら無名ハッシュのコンストラクタ my @array = @retarrayref; #これだと、retarrayrefが未初期化の変数になってる? print "\$rarray = $rarray\n"; --> HASH(0xxxx) print @array; # --> 何も表示されない
sub retarrayref { my @array = ( 1,2,3,4 ); \@array; } my $rarray = retarrayref(); my @array = @{retarrayref()};# ブレースで囲むと、なんかデリファレンスできてる。 print "\$rarray = $rarray\n"; # --> ARRAY(0xxxxx) print @array; # --> 1234