2011-02-14 67 views
2

我有此脚本获取参考。预计内容

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

回答

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; 
3

具有负载()和dump()逆转;负载需要YAML,并产生一个perl数据结构;转储需要Perl的数据结构,并产生YAML。