YAML.pm bug?

use strict; use warnings;

use Data::Dumper;
use YAML;

my $config = {
    default => [ 1, { '*' => 1 }, ],
    deny    => ['script'],
};

my $yaml = Dump($config);

print $yaml;
print Dumper( Load($yaml) );

output:

---
default:
  - 1
  - '*': 1
deny:
  - script
YAML Error: Couldn't parse single line value
   Code: YAML_PARSE_ERR_SINGLE_LINE
   Line: 5
   Document: 1
 at /usr/local/share/perl/5.8.7/YAML.pm line 60

This code works fine with YAML::Syck.

by typester / at 2006-05-15T04:02:00 / perl · yaml / Comment

qr/\.(css|js|swf)$/ みたいなのを YAML で書くにはどうしたらいいのだろうとおもって、とりあえず YAML モジュールを使って

use YAML;

my $data = {
    regex => qr/\.(css|js|swf)$/,
};

print Dump( $data );

こんなのをしてみる。

結果。

---
regex: !perl/regexp:
  REGEXP: \.(css|js|swf)$

こんな風に書くのか。これを LoadFile しても

$VAR1 = {
          'regex' => qr/(?-xism:(?:\.(css|js|swf)$))/
        };

となるのでちゃんと使えるようだ。

でも YAML::Syck だと Load Dump ともにうまく動かない。

by typester / at 2006-03-17T14:53:00 / perl · yaml / Comment