2005年09月21日 15:48 [Edit]

この記事をクリップ! newsing it! Buzzurlにブックマーク b.hatena.ne.jp/entry UTF-8 Flagを落とそうとして思わぬBugを見つけた話

これじゃ、駄目。

UTF-8 フラグと戦う人へ - にぽたん研究所
UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。
Unicode::RecursiveDowngrade

以下ダメな点を。

  • Hash Keyに未対応
  • Blessed Referenceに未対応

ダメダメいうだけではダメなので、以下、代案....を出そうとしたら、StorableのBugを見つけてしまったかも。

package Unicode::DeepDowngrade;
use strict;
use warnings;
use Storable qw/dclone/;
sub new{ bless {} => shift; }
sub downgrade{
    use bytes;
    my $self = shift;
    local($Storable::drop_utf8) = 1;
    return dclone(shift);
}
1;

こうしておいて、

use Unicode::DeepDowngrade;
use Devel::Peek;
use utf8;
my $udd = Unicode::DeepDowngrade->new;
my $obj = {
    名前 => '小飼 弾',
    字   => [qw/小飼 弾/],
    読み => { 小 => "Ko", 飼 => "Gai", 弾 => "Dan" },
};
my $dobj = $udd->downgrade($obj);
Dump $dobj;

こうしても、Flagは落ちないままなのだ。dclone()freeze(),thaw()に変えてもstore(),retrieve()に変えても駄目。うむむ....

Dan the Perl5 Porter


この記事へのトラックバックURL

この記事へのソーシャルブックマーク
はてなブックマーク
Livedoorクリップ
0 Buzzurl
この記事へのトラックバック
このあいだ紹介した、Unicode::RecursiveDowngrade ですが、弾さんが、 404 Blog Not Found:UTF-8 Flagを落とそうとして思わぬBugを見つけた話これじゃ、駄目。と一言で、一刀両断されてますた。以下ダメな点を。Hash Keyに未対応Blessed Referenceに未対応と駄目な点を挙げ...
UTF-8 フラグと戦う人へ 〜Storable の bugfix なんか待ってられない編【にぽたん研究所】at 2005年09月24日 14:46