2011-02-14 39 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。