• ベストアンサー

Perlでuse strictと %inの共存

use strictを使うと、変数の使用に厳密にチェックしてくれるので、便利だと思い使いましたが、ReadParse後の%inを利用する場合に宣言されていないエラーが表示されます。意味的には正しいですが、$in{'test'}など CGIで受け取った内容が扱えなくなるので、困っております。何か解決方法は有るのでしょうか? use strict; require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse; my $x = $in{'md'};

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

そのような場合、Perl 5.6 以上ならば「our %in;」、それ以前ならば「use vars '%in';」を、%in の使用箇所より前に記述します。 こうすると、strict 環境でもグローバル変数をそのまま利用できます。