プロが教えるわが家の防犯対策術!

cgi-lib.plのReadParseの引数でParamグロブを使った場合、
use strict;をすると、必ず以下のエラーが表示されます。

use strictはそのまま使いたく、他の部分も厳密にチェックしたいのですが
何かよい方法はありますか?


use strict;
require 'cgi-lib.pl';

&ReadParse(*Param);
my $MODE = $Param{'MODE'}; <----- errro Variable "%Param" is not imported at

A 回答 (2件)

use vars qw/%Param/;

    • good
    • 0

CGI.pmとか、それが重くていやだというなら CGI::Lite.pmやCGI::Minimal.pm


という選択もできるのではないかと思うのですが、
いまさら cgi-lib.plから離れたくないということなら

CGIに対するパラーメータを取得するところを

sub get_param {
no strict 'refs' #たぶん no strict でなくてOK
&ReadParse(*Param);
$Param{'MODE'}; # return $Param{'MODE'};がお好みなら修正してください
}

のようにすればいけると思います。
このサブルーチンだと 'MODE' しかとってこれませんが、
より汎用的にするのは簡単ですよね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!