2009年 12月 15日

Data::Dumper は null 文字を Dump しない

全く知らなくて少しまえに大変にハマったのですが、Data::Dumper は普通に使うと \0 を Dump しないようです。(してるけど見えない?)

my $str = "\0";
Dumper $str; #=> ''

[ unpack("C*", $str) ]; #=> [ 0 ];

普段 p を Data::Dumper に展開するようにしてデバッグしているので本当にハマります。

個人的にはデバッグ用に

  • utf8 flagged 文字列かどうかが見た目でわかる
  • \0 がちゃんと出てくる
  • 表示できそうな文字 (英数字・ひらがなカタカナ程度) 以外は全部 \x{} に

みたいなのが簡単にできるモジュールが欲しいのですが既にあるのかな