从 YAML 文件中提取数据

问题描述 投票:0回答:2

我需要使用 Perl 从 YAML 文件中获取与变量关联的值。

到目前为止我已经尝试过了。

my $fh = new FileHandle; 
my $mydir = "/proj/1a/ct_tst/cf";
my $file  = "tsan.yml";
opendir($dh, $mydir) or die ("Cannot read directory!\n");
open($fh, "< ${mydir}/${file}") or die ("Cannot read file $file!\n");

它可以加载文件。但是,我不确定如何继续获取 YAML 文件中变量对应的值。

perl yaml
2个回答
4
投票

您应该使用 YAML 解析器(如 YAML.pm)。

use YAML;

my $data = LoadFile("$mydir/$myfile");

现在,在

$data
中,您将拥有一个 Perl 数据结构,其中包含 YAML 文件中的所有数据。但由于我不知道你的 YAML 是什么样的,所以我无法帮助你从中提取特定数据。


0
投票

现在你应该使用 YAML::PP 在 perl 中读取 YAML 文件。它是目前唯一实现 YAML 1.2 的 Perl 模块,因此您将与跨不同语言工作的 YAML 文件兼容。它甚至在 YAML.pm 的文档中得到推荐,因为 YAML.pm 实现了 YAML 规范的早期版本。

use YAML::PP qw/ LoadFile /;
my $data = LoadFile("$mydir/$myfile");
© www.soinside.com 2019 - 2024. All rights reserved.