Hatena::Groupsubtech

冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

 | 

Mar 23, 2010 (Tue)

Perl, utf8 フラグ, ハッシュ, リテラル, => 16:27 はてなブックマーク - 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 ;
};

みたいなとき、まず気付かない……

Text::Xatena を CPAN に上げました 02:04 はてなブックマーク - Text::Xatena を CPAN に上げました - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

インラインシンタックスはもうすこし抽象化して拡張しやすくしたいですが、とりあえず使えているバージョンを CPAN に上げました。0.01 リリース直後に use 忘れを指摘して頂いたので 0.02 になってます。

テストで http://example.com/ へアクセスするコードにしているせいで場合によってテストが落ちるのをなんとかしたいのですが、Test::HTTP::Server::Simple を使うと Test::Base あたりの組み合せでどうしてもうまくいかないのでそのうちどうにかしたいです。

なんとなくテストを追加してたらバグを見つけたので、修正したのと、http://example.com/ へアクセスするテストもなおしました

 | 

スポンサード リンク

書いてる人

cho45 (佐藤広央) (www.lowreal.net)

Perl, JavaScript, Ruby, HTML, CSS, Web etc


スポンサード リンク