Perl, utf8 フラグ, ハッシュ, リテラル, =>
miyagawa さんに教えて頂いたのですが、Perl のバグらしく、解決するためには => の左をクオートするか、Perl を 5.12 にすればいいらしいです。
{
use utf8;
my $a = [ foo => "bar" ];
warn utf8::is_utf8($a->[0]); #=> true
warn utf8::is_utf8($a->[1]); #=> false
};
{
no utf8;
my $a = [ foo => "bar" ];
warn utf8::is_utf8($a->[0]); #=> false
warn utf8::is_utf8($a->[1]); #=> false
};死ぬほどハマった。
use Encode;
use HTTP::Request::Common;
use Data::Dumper;
{
use utf8;
my $s = encode_utf8("ああああ");
my $req = POST "/", [ test => $s ];
warn Dumper $req ;
};
print "\n\n";
{
no utf8;
my $s = "ああああ";
my $req = POST "/", [ test => $s ];
warn Dumper $req ;
};みたいなとき、まず気付かない……