Apache::PerlRun で MT を動作させて、特に問題はなさそうだと思っていたんですがウェブサーバのエラーログに
[Mon Jun 16 02:42:32 2003] countdown.pl: Subroutine countdown redefined at /hoge/foo/bar/mt/plugins/countdown.pl line 46.
なんて警告がが延々と出てました。mt.cgi を実行させる度に吐いているようです。メッセージだけから判断するとプラグインで定義されてるサブルーチンが複数回定義されてるってことなんですが、単なる CGI として動かしてるときは出ないメッセージなので、ちょっと厄介です。組み込んでるプラグインで定義されてるサブルーチンの数だけ、上記のメッセージが出てます。
mt.cgi の動作には問題ないですが、気持ち悪い。見たところ $MT_HOME/lib/MT.pm の 105 行目当たりで
my $plugin_dir = $cfg->PluginPath;
local *DH;
if (opendir DH, $plugin_dir) {
my @p = readdir DH;
for my $plugin (@p) {
next if $plugin !~ /\.pl$/;
$plugin = File::Spec->catfile($plugin_dir, $plugin);
if ($plugin =~ /^([-\\\/\@\:\w\.\s]+)$/) {
$plugin = $1;
} else {
die "Bad plugin filename '$plugin'";
}
eval { require $plugin };
warn($@), next if $@;
}
closedir DH;
}
とプラグインのスクリプトを require しているのですが、この変が怪しいんだろうか。うーん。
こんにちは。
うちでもcountdown.pl使っているのですが、この記事を見て「もしかして?」と思いerror_logを見てみました。
すると違うエラーを吐いていました(涙
エラーは
"my" variable $until masks earlier declaration in same scope at /usr/local/apach
e/cgi-bin/naga/MT2/plugins/countdown.pl line 55.
というやつでした。
うちのcountdown.plはversion 1.2です。
というわけで気づかせていただいてありがとうございました。
[1] Posted by: nagasawa at June 16, 2003 05:38 PM [返信]