相关疑难解决方法(0)

Perl YAML模块无法识别标量类型

我加载以下.yaml文件

foo : bar
s : 1
hx: 0x34
Run Code Online (Sandbox Code Playgroud)

用这段代码:

use YAML qw(LoadFile Dump); 
use Data::Dumper; 
my $d=LoadFile("test.yaml"); 
print Dumper($d);
print "x        =", $d->{hx},"\n";
print "x/2      =", $d->{hx}/2,"\n";
print "hex(x)/2 =", hex($d->{hx})/2,"\n";
Run Code Online (Sandbox Code Playgroud)

而输出是

Output:
> ./yaml.pl
$VAR1 = {
          'foo' => 'bar',
          'hx' => '0x34',
          's' => '1'
        };
x        =0x34
x/2      =0
hex(x)/2 =26
Run Code Online (Sandbox Code Playgroud)

这意味着它将所有标量视为字符串,这是我没想到的.从CPAN的YAML文档http://metacpan.org/pod/YAML我假设这是通过隐式标记处理的,并且模块将识别十六进制数.

有人知道怎么做这个吗 ?

perl yaml

9
推荐指数
1
解决办法
288
查看次数

标签 统计

perl ×1

yaml ×1