死ぬかと思った。


僕の使っているperlという言語で突然下記のエラーが山盛りとなった。

Type of arg 1 to keys must be hash (not hash element)

サーバーにアップしたら、ものすごい数でてきたのである。
ローカルのサーバーでは起きなかった。


v5.6->v5.8の時にずいぶん大きく変わったけど、今回はびっくりした。

年末に公開なのでこの量のエラーはマイル。
それも、サーバーでしか起きない。

結局、ハッシュのkeys関数の扱いがどうも変わっていた。
今までは余り使ったことのない使い方をしたので起こったのだ。

(keys($masaya{zubon}))
これで起きる。

ハッシュのハッシュからkeyを取り出して順次処理しようかと思ったのである。

keysのパラメータは%でなければならないのだろう。
僕の開発マシンでは起こらないから死ぬかと思った。


my $saito=$masaya{zubon}
(keys(%&saito))
でいけた。

こまめにアップしては確認していたのだが、2日ほど少し長めの書き直しをしていたらやられた。


緊迫の2時間であった。

まあ、2日で書いた部分なので、皆書き直せばいいやと思った、
しかし、年末に公開なので少しだけ困った。




こちらローカルのバージョン
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level


こちら起こったサーバーのバージョン
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi



979902