読者です 読者をやめる 読者になる 読者になる

hitode909の日記

趣味はマリンスポーツですの日記です

Data::DumperではなくData::Printerを使うと日本語もいいかんじに表示できる

長らくPerlのオブジェクトをダンプするのにData::Dumperを使っていたけど,フラグの立った文字を見にくかったりして,なにかと困っていた.
日本語見れるDumperないんかな…という話をしていて,Data::Printerなら見れることが分かったので,EmacsでDDってDを2回押すとData::Printerでデバッグできるようにした.

(define-key
  cperl-mode-map
  (kbd "D")
  (smartchr
   '("D" "use DDP { show_unicode => 1, use_prototypes => 0, colored => 0 }; p `!!';")))

smartchr.elを使っていて,大文字のDを2回入力するとカーソル位置にこれが出る.

use DDP { show_unicode => 1, use_prototypes => 0, colored => 0 }; p (ここにカーソル)

説明

いろいろ指定している.

show_unicode=> 1

フラグが立ってるときに,"デコードされている" (U)みたいに,(U)をつけてくれる.

use_prototypes => 0

これをしないと,p "hi"とか書けなくて,いちど変数に入れないといけなくて不便.

colored => 0

Emacsから表示すると制御文字がそのまま表示されてしまったので,色なしにする.


ふつうの人はふだんからこういう便利モジュールを使ってそうなので,何を今更感ある話かもしれない.

Data::Printer - colored pretty-print of Perl data structures and objects - metacpan.org