読者です 読者をやめる 読者になる 読者になる

勝手にレス>Test::Baseのyamlフィルタで空配列を作るときの動作が理解できない

perl

http://d.hatena.ne.jp/foosin/20090416/1239903771

 ~~ snip ~~

__END__
=== 1st
--- i
--- e
[]

YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at /usr/lib/perl5/site_perl/5.8.5/YAML.pm line 33
# Looks like your test died before it could output anything.

Test::Baseがというか、yamlフィルターで使ってるYAML.pmがエラー吐いてる。事前の確認で使ってるYAML::Syckではokでも、YAMLでは(多分yaml仕様的にも)not validということで駄目なんでしょう。

use strict;
use warnings;

use Data::Dumper;
# use YAML::Syck;
use YAML;
use Test::More qw/no_plan/;

sub p { print Dumper shift }

my $not_valid = <<END;
[]
END

my $valid = <<END;
--- []
END

ok ! eval { Load($not_valid) };
ok   eval { Load($valid) };