首页 > 解决方案 > 无法在 perl 中获取 YAML 文档节点

问题描述

我在下面有 yaml 文件,其中包含三个文档,我想访问每个文档(节点)以将其加载到数据库中,但只能访问第一个文档。我怎样才能获得休息?

可以使用 # https://codebeautify.org/yaml-validator验证 YAML 文档

use warnings;
use strict;
use diagnostics;
use YAML::XS qw (LoadFile Dump) ;
use Data::Dumper;

#my $content = read_file( 'db2.yml' ) ;

my $libyaml_version = YAML::XS::LibYAML::libyaml_version();
print "Lib YAML Version: $libyaml_version \n";

my ($content) = LoadFile('db2.yml');
my $test = \$content;

print Dump($test);
#print Dump($content);

#-- Works
print "Q01 '", $content->{Q01}, "'\n";

#-- Does not work
#print "Q02 '", $content->{Q02}, "'\n";
#print "Q03 '", $content->{Q03}, "'\n";

样本数据文件 (db2.yml)

---
Q01: Db2 workgroup server edition is designed to handle 
Options: 
  - Transactional workloads for department
  - Mixed workloads for medium businesses
  - Transactional and warehouse workloads for department
  - Transactional and warehouse workloads for medium businesses
Correct: 
  - 1
  - 2
---
Q02: Which of below process runs in seperate address space
Options:
  - db2acd
  - db2vend
  - db2fmp
  - db2sysc
Correct:
  - 2
  - 3
---
Q03: AUTHENTICATION is database level parameter
Options:
  - True
  - False
Correct:
  - 2

标签: perlyaml

解决方案


推荐阅读