下記はハッシュのリファレンス値を表示させるプログラムです。
Perl
1use strict; 2 3my %hash = (key1=>'val1', key2=>'val2'); 4 5sub proto1(\%) { 6 foreach my $value (@_) { 7 print "$value"; 8 } 9 print "\n"; 10} 11 12my $proto2 = sub(\%) { 13 foreach my $value (@_) { 14 print "$value"; 15 } 16 print "\n"; 17}; 18 19my $proto3 = sub(%) { 20 foreach my $value (@_) { 21 print "$value"; 22 } 23 print "\n"; 24}; 25 26proto1(%hash); # HASH(0x7fe5eb010690) 27$proto2->(%hash); # key1val1key2val2 28$proto2->(\%hash); # HASH(0x7fe5eb010690) 29$proto3->(%hash); # key1val1key2val2 30$proto3->(\%hash); # HASH(0x7fe5eb010690)
proto1は思惑通りの動作となっているのですが、
proto2, 3に関して
- 呼び出し元引数に ¥ をつける必要があるのは何故ですか?
- プロトタイプの宣言が¥%と%単独で違いが生まれないのは何故ですか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。