2018-08-04から1日間の記事一覧

結局、デリファレンスとはなんなのか

my $hoge = "A"; my $ref_hoge = \$hoge; print $hoge . "\n"; print $ref_hoge . "\n"; print ${$ref_hoge} . "\n"; print $$ref_hoge . "\n"; この出力をみて考えてみよう。 A SCALAR(0x269eff8) A A $hogeはAが入っている。$ref_hogeには$hogeのリファレ…

ハッシュのデリファレンス

配列だけでなくハッシュでも同様のことがいえるようだ。 my %hash = (id => 'test', name => 'test2'); my $ref_hash = \%hash; use Data::Dumper; print Dumper $ref_hash; print Dumper %$ref_hash; %$とすることで、%{$hogehoge}という記法を略記して元の…

デリファレンス

Perlを読んでいると、しばしばこういう記述がでてくる。 @$hogehoge @は配列、$は変数を表していたはずである。 @$というのは、どういうことなのだろうか。上は実は、 @{$hogehoge} を省略した書き方なのらしい。配列のリファレンスが入った$hogehogeから、…

foreachの制御変数は一時変数ではない

my @array = (1, 2, 3, 4, 5); foreach my $elm (@array) { $elm++; } use Data::Dumper; print Dumper @array; 出力結果は何だろうか? $elmをPHPのforeachにおけるasの後の変数と同様、一時変数だと思い込んでしまうと、 $elmをインクリメントしても@array…