@とAは同じことをしているのですが、"{}"と"()"で意味が異なるのです。
前者"{}"はハッシュのリファレンスと返し、
後者"()"はハッシュの実体を返します。
@
$rhash = {
a => 1,
b => 2,
c => 3,
d => 4
};
print $$rhash{c}, "\n";
A
%hash = (
a => 1,
b => 2,
c => 3,
d => 4
);
$rhash = \%hash ;
print $$rhash{c}, "\n";
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |