意味不明のエラー 続

意味不明なエラーを調べてみたところ、エラーの内容を正確に把握していなかった。
実行スクリプトでエラーが起こっているのではなく、モジュール内でエラーが発生している。

Use of uninitialized value in substitution iterator at /opt/local/lib/perl5/site_perl/5.8.8/URI/_query.pm line 16.
Use of uninitialized value in substitution iterator at /opt/local/lib/perl5/site_perl/5.8.8/URI/_query.pm line 16.

また、実行時の perl のオプションを外すことで、エラーが発生しないことに気がついた。なので、perl のオプションを調べる。

perl -w オプション
-w オプションを利用すると、一度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力する。
ということは、何か変数が正しく初期化されていないのだろうと推測する。そして、真っ先に疑ったのが、下記のハッシュ。

	'Search_Query' => encode('euc-jp', '白書'),

案の定、コメントインしたら、エラーが出力されなくなった。そして、コメントアウトをして、encode 関数を削除して値を英数字にしたら、エラーは出力されない。
ということは、URL エンコード、もしくは encode 関数に失敗していることだろうと推測した。