prototype mismatchが出まくる件

ModPerl::PerlRunとして実行しているcgiスクリプトがあるのですが、
こないだのDBD::Pg非同期対応したらprototype mismatchがエラーログにがしがし出まくっていた。*1

Prototype mismatch: sub ModPerl::ROOT::ModPerl::PerlRun::hoge_2excgi::PG_OLDQUERY_CANCEL: none vs () at hoge.xcgi line 38
Prototype mismatch: sub ModPerl::ROOT::ModPerl::PerlRun::hoge_2excgi::PG_OLDQUERY_WAIT: none vs () at hoge.xcgi line 38
Prototype mismatch: sub ModPerl::ROOT::ModPerl::PerlRun::hoge_2excgi::PG_ASYNC: none vs () at hoge.xcgi line 38


ただし、DBD::PgだけじゃなくてTime::HiResのsleep対応でもログに出てた。
どうも
use DBD::Pg qw/:async/;
use Time::HiRes qw/sleep/;
のようにサブルーチンインポートしてるuse部分でエラーが出てるっぽい。


たぶん、このメッセージ自体はあまり気にしなくてもいいのかなーという気もするが
余計なエラーログが出まくるのはよろしくないので調べた。


…が、原因は結局わからず><
でもModPerl::Registryモードにしたらエラーメッセージ出なくなったのでおkとする。


※補足
なんでPerlRunで実行してたかというと、ベンチマーク結果はPerlRunでもRegistryでも変わらなかったので、
変な動作おこさなそうなPerlRunを使っていたという事です。
ただRegistryモードでも問題なく動くように書いていたので今回の対応で問題ない!はず。

*1:mod_perlのバージョンは…忘れたのであとで確認