YAML::XS 错误检查

YAML::XS error checking

我正在使用 YAML::XS CPAN 模块。如果在加载 YAML 文件时失败,如何进行错误检查?文档什么也没说

use YAML::XS qw/LoadFile/;
$CONFIG_DATA = LoadFile($CONFIG_FILE);

如果 $CONFIG_FILE 有语法错误,我想打印一条有意义的消息。

您可以使用 eval 捕获错误,尽管文档没有告诉您 LoadFile 如果遇到错误就会死掉,您是对的:

use v5.10;
use YAML::XS qw/LoadFile/;
use Data::Dumper;

my $hash = eval { LoadFile( $ARGV[0] ) };
if( $@ ) {
    say "I found an error: $@";
    }
say Dumper( $hash );