誰かがこれにいくつかの光を当てることを望みます...Peramsの問題:DateTime :: Format :: ISO8601がParams :: Validateで問題を追跡しましたか?
私は、チーム内の多くの他の開発者は、自宅のperlアプリケーションを実行している大規模な。これにもかかわらず、すべてのラップトップ(LinuxとMac)の間でうまく動作していますが、私の人生では私の自宅の大きなPCでこれを実行することはできません。
私はCPAN経由ですべての依存関係をインストールしましたが、私は、サイトを訪れたときにApacheのエラーログに次のようになっています:
The 'regex' parameter ("(?x-ism:^ (\d{4}) (\d\d) (\d\d) $)") to DateTime::Format::Builder::Parser::create_single_parser was an 'unknown', which is not one of the allowed types: scalarref
at /usr/local/lib/perl/5.12.4/Params/ValidatePP.pm line 651
Params::Validate::__ANON__('The \'regex\' parameter ("(?x-ism:^ (\d{4}) (\d\d) (\d\d) $)"...') called at /usr/local/lib/perl/5.12.4/Params/ValidatePP.pm line 491
Params::Validate::_validate_one_param('Regexp=REGEXP(0x7f8a3aad06e8)', 'HASH(0x7f8a3aaea840)', 'HASH(0x7f8a3aa75aa8)', 'The \'regex\' parameter ("(?x-ism:^ (\d{4}) (\d\d) (\d\d) $)")') called at /usr/local/lib/perl/5.12.4/Params/ValidatePP.pm line 353
Params::Validate::validate('ARRAY(0x7f8a3aa33808)', 'HASH(0x7f8a3aa32db8)') called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder/Parser.pm line 312
DateTime::Format::Builder::Parser::create_single_parser(undef, 'params', 'ARRAY(0x7f8a3aad0640)', 'length', 8, 'regex', 'Regexp=REGEXP(0x7f8a3aad06e8)') called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder/Parser.pm line 504
DateTime::Format::Builder::Parser::sort_parsers('DateTime::Format::Builder::Parser', 'HASH(0x7f8a3aa4e2b8)', 'ARRAY(0x7f8a3aa3f148)') called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder/Parser.pm line 398
DateTime::Format::Builder::Parser::create_multiple_parsers('DateTime::Format::Builder::Parser', 'HASH(0x7f8a3aa4e2b8)', 'HASH(0x7f8a3aad06b8)', 'HASH(0x7f8a3aad0808)', 'HASH(0x7f8a3aad0910)', 'HASH(0x7f8a3aad0a00)', 'HASH(0x7f8a3aad0b08)', 'HASH(0x7f8a3aad0cb8)', 'HASH(0x7f8a3aad0e50)', ...) called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder/Parser.pm line 603
DateTime::Format::Builder::Parser::create_parser('DateTime::Format::Builder::Parser', 'ARRAY(0x7f8a3a72fc88)', 'HASH(0x7f8a3aad06b8)', 'HASH(0x7f8a3aad0808)', 'HASH(0x7f8a3aad0910)', 'HASH(0x7f8a3aad0a00)', 'HASH(0x7f8a3aad0b08)', 'HASH(0x7f8a3aad0cb8)', 'HASH(0x7f8a3aad0e50)', ...) called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder.pm line 158
DateTime::Format::Builder::create_parser('DateTime::Format::Builder', 'ARRAY(0x7f8a3aae5450)') called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder.pm line 177
DateTime::Format::Builder::create_end_parser('DateTime::Format::Builder', 'ARRAY(0x7f8a3aae5450)') called at /usr/local/share/perl/5.12.4/DateTime/Format/Builder.pm line 106
DateTime::Format::Builder::create_class(undef, 'parsers', 'HASH(0x7f8a3aae8f18)') called at /usr/local/share/perl/5.12.4/DateTime/Format/ISO8601.pm line 175
私は直接に、いくつかのnoddyでprint STDERR
さんが立ち往生しましたそうValidatePP.pm
あなたは行番号を見ていると、彼らが少し出ているが、基本的ValidatePP.pm
で、それはsub _get_type
に次のコードブロックになっている場合:それはfolloを返す-v Perlを実行している、助け場合
# I really hope this never happens.
return UNKNOWN;
このPC上の翼バージョン
これは、Perl 5、バージョン12、 x86_64版 - のlinux-gnuのスレッドのマルチ
誰のために建て転覆4(v5.12.4)ですか?
UPDATE:
それが助け場合は、サブルーチン_get_type
は、基本的には、以下の場合regex: !!perl/regexp (?x-ism:^ (\d{4}) (\d\d) (\d\d) $)
が1ではないこと(UNIVERSAL::isa
を使用して)決定されます。すべての
my %isas = (
'ARRAY' => ARRAYREF,
'HASH' => HASHREF,
'CODE' => CODEREF,
'GLOB' => GLOBREF,
'SCALAR' => SCALARREF,
);
問題を引き起こすコードを提供した場合に役立ちます。 – ikegami
コードベースは巨大ですが、エラーをスローする "USE DateTime :: Format :: ISO8601"に変わります – devrooms