# Data::Dumper::AutoEncode に便利コマンド edumper 追加した {{tag: perl, cpan}} 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}" }; まあそういうわけで、{{cpan: Data::Dumper::AutoEncode}} というモジュールがあって、これの `eDump` でダンプすると、ヒューマンリーダブルなダンプ結果が見える。 use strict; use warnings; use utf8; use Data::Dumper::AutoEncode; print eDumper({ str => '寒い' }); 「寒い」のままダンプされる。 $VAR1 = { 'str' => '寒い' }; まあこれ便利なわけですが、シリアライザとしてはいまいちで、デバッグ目的にしか利用しにくいのでした。ついでに、Data::Dumper を使ったコードがすでにいたるところに存在していて書き換えて確認すんのとかめんどくせーという声も聞こえてきます。 まあそういうわけで、このたび {{cpan: edumper}} というフィルタコマンドを {{cpan: 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' => "寒い" }; うぇーい。