获得参考。预期内容

时间:2011-02-14 09:54:47

标签: perl yaml

我有这个脚本

#!/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内容的结构。那里有什么不对?

2 个答案:

答案 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。