ハッシュでの、不思議バグ解決

昔、不思議なバグを見つけて、
その原因に今日気が付いたので残しておく。

my $data = {
x => $s->param('xxx'),
y => $s->param('yyy'),
};

この結果がなぜか、変な値なってしまうのだ。
以下みたいな感じ。

$data => {
x=> 1,
2=> 'y',
}

とりあえずその際には、

$data->{x} =$s->param('xxx');
$data->{y} = $s->param('yyy'),

とするとうまく動くので、そういった対応にした。

で、実際なぜそうなったかというと、以下が原因だ。

my $hash = {
x => 23, 4,
y => 'g',
};

そう。つまり、$s->param('xxx') の戻り値が配列だったんだ。
ふと、なぜか、今日思い付いた。おそらく、昨日この問題について会話にでたので、
無意識に考えていたのだろう。

すっきりしました。 まだまだ、修行がたりない。精進しないと。