2015/10/16

Data::Dumper::AutoEncode に便利コマンド edumper 追加した

Data::Dumper だと decoded な文字列がエスケープしてダンプされる。

use strict;
use warnings;
use utf8;
use Data::Dumper;

print Dumper({ str => '寒い' });

「寒い」は「\x{5bd2}\x{3044}」となる。

$VAR1 = {
          'str' => "\x{5bd2}\x{3044}"
        };

まあそういうわけで、Data::Dumper::AutoEncode というモジュールがあって、これの eDump でダンプすると、ヒューマンリーダブルなダンプ結果が見える。

use strict;
use warnings;
use utf8;
use Data::Dumper::AutoEncode;

print eDumper({ str => '寒い' });

「寒い」のままダンプされる。

$VAR1 = {
          'str' => '寒い'
        };

まあこれ便利なわけですが、シリアライザとしてはいまいちで、デバッグ目的にしか利用しにくいのでした。ついでに、Data::Dumper を使ったコードがすでにいたるところに存在していて書き換えて確認すんのとかめんどくせーという声も聞こえてきます。

まあそういうわけで、このたび edumper というフィルタコマンドを Data::Dumper::AutoEncode に同梱しました。

【samui_dump.pl】

use strict;
use warnings;
use utf8;
use Data::Dumper;

print Dumper({ str => '寒い' });

上記のように、Dumper によって「寒い」がエスケープされる場面で、パイプして利用します。

$ samui_dump.pl | edumper
$VAR1 = {
          'str' => "寒い"
        };

うぇーい。

サイト内検索