無名ハッシュのコンストラクタとブロック

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