ハッシュをリストとして扱ってみる
前回のエントリで、ハッシュを作るときの書式
my %hash = ('foo'=>42, 'bar'=>23, 'baz'=>3.14);
が、リストを代入しているように見えて仕方が無い、みたいな話しをしたけど、それの続きっぽい感じで。じゃあ、%hashをリストとしてforeachにぶち込んでみるとどうなるやら。http://ideone.com/3QJZn
my %hash = ('foo'=>42, 'bar'=>23, 'baz'=>3.14); foreach (%hash) { print "$_ "; }
なぬ!
本の後の方にも書いてあったけど、ハッシュをリストとして扱うと、(キー1, 値1, キー2, 値2, キー3, 値3, ...) ってなるんだって。
はい、ここでまた混乱ですよ...。じゃあ、ハッシュに (キー1, 値1, キー2, 値2, キー3, 値3, ...) ってリストを代入するとどうなるんだろう。やってみた。http://ideone.com/oBMSW
my %hash = ('foo', 42, 'bar', 23, 'baz', 3.14); foreach (keys %hash) { print "$_ -> $hash{$_}\n"; }
ナ ナンダッテー!! Ω ΩΩ. ...
ちゃんとハッシュできとるし。ますます 'foo'=>42 が何なのか分からなくなった。=>演算子の詳細を調べれば分かるかな?ってか=>って演算子なのかな。