0

http://cpansearch.perl.org/src/MSTROUT/YAML-0.84/lib/YAML/Loader/Base.pm

打ってるなら

die 'load() not implemented in this class.';

どういう意味ですか?

私は完全な perl 初心者で、このエラーが表示される理由を学習/デバッグしようとしています。

つまり、load() を別の場所 (オーバーロード) に実装する必要があり、ここに到達するべきではありませんでしたか?

私のコードは:

try.pm

use YAML;
my $yaml = YAML::LoadFile( $params{'filename'} );

YAML.pm に移動します。

field loader_class => 'YAML::Loader';

LoadFile() を呼び出して、次のことを行います。

Load(do { local $/; <$IN> }); 

Load() を呼び出す

$yaml->loader_class($YAML::LoaderClass)
    if $YAML::LoaderClass;

そして、エラーが表示される場所に到達します:YAML/Loader/Base.pm

4

1 に答える 1

0

YAML::Loader::Base は、いくつかの共通機能を提供するための基本クラスとして使用されます。load基本クラスでオーバーライドする必要があります。

YAML をアップグレードしてみてください。お使いのバージョンにバグがあるようです。

于 2012-12-12T20:50:42.240 に答える