無名ハッシュのコンストラクタとブロック
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