我有这个脚本
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
use YAML::Syck;
my $x = {'x' => [1,2,3],
'y' => {'z' => 8},
'q' => 'abc',
};
my $yaml = YAML::Syck::Load($x);
print "\n" . $yaml . "\n\n\n";
my $h = YAML::Syck::Dump($yaml);
print Dumper $h;
输出
HASH(0x7539cb0)
$VAR1 = '--- HASH(0x7539cb0)
';
我希望看到$x
内容的结构。那里有什么不对?
答案 0 :(得分:4)
您应该使用Dump
将Perl数据结构转储到YAML和Load
以执行相反的操作。
尝试:
my $yaml = YAML::Syck::Dump($x);
print "\n" . $yaml . "\n\n\n";
my $h = YAML::Syck::Load($yaml);
print Dumper $h;
答案 1 :(得分:3)
你有Load()和转储()逆转;负载采用YAML并生成perl数据结构;转储采用perl数据结构并生成YAML。