なぜ対処療法かというと、おいらが中身を全然理解してないから...orz
Hashを引数にとろうとするとなぜかOdd number of elements in hash assignmentなんて
警告が...
とりあえずぐぐる。
Odd number of elements in hash list (S) ハッシュリストへの要素の数が奇数でした。 ハッシュリ ストは、key/value のペアで与えられますから、これは奇妙なことです。
奇妙ってなぁ...わけわかめ。
もうちょっとぐぐる。
Performanceとか、タイプ数が増えることより、このコードの弱点は間違ってハッシュ以外のものを渡したときの対策がないこと。Odd number of elements in hash assignmentという警告は出ますし、規約重要ということにしておけばよい話ですが、慎重を期すなら
sub foo{
die "foo needs hash" if @_ % 2;my %arg = (
optional => 42,
@_, # ここがポイント
);
}のような対策を入れておきたいところですな。
だめもとで、上ののコードを加えてみる。ちょうどここ。
die "foo needs hash" if @_ % 2;
...警告が消えた。
ん...納得がいかない。
わかったこと。
ラクダ本買えって? w