我需要使用 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 文件中变量对应的值。
您应该使用 YAML 解析器(如 YAML.pm)。
use YAML;
my $data = LoadFile("$mydir/$myfile");
现在,在
$data
中,您将拥有一个 Perl 数据结构,其中包含 YAML 文件中的所有数据。但由于我不知道你的 YAML 是什么样的,所以我无法帮助你从中提取特定数据。
现在你应该使用 YAML::PP 在 perl 中读取 YAML 文件。它是目前唯一实现 YAML 1.2 的 Perl 模块,因此您将与跨不同语言工作的 YAML 文件兼容。它甚至在 YAML.pm 的文档中得到推荐,因为 YAML.pm 实现了 YAML 规范的早期版本。
use YAML::PP qw/ LoadFile /;
my $data = LoadFile("$mydir/$myfile");