Data::Dumper - データをダンプする
Data::Dumperモジュールを使うと、ハッシュや配列などの変数の内容を見やすい形で出力することができます。またリファレンスを使用した複雑なデータ構造を見やすく出力することができます。
use Data::Dumper; # データをダンプ my $dump_string = Dumper $data;
Dumper関数を使用するとデータを見やすい文字列に変換することができます。Dumper関数は出力を行わないことに注意してください。
画面に出力に出力したい場合は、print関数やwarn関数と組み合わせます。
print Dumper $data; warn Dumper $data;
Data::Dumperのいくつかの例を紹介します。
スカラ変数を出力
スカラ変数を出力します。
my $name = 'kimoto'; print Dumper $name;
配列を出力する
Dumperの引数には、配列のリファレンスを渡してください。
my @nums = (1, 2, 3); print Dumper \@nums;
配列のリファレンスを出力する
print Dumper [1, 2, 3];
ハッシュを出力する
Dumperの引数には、ハッシュのリファレンスを渡してください。
my %score = (math => 97, english => 80); print Dumper \%score;
ハッシュのリファレンスを出力する
print Dumper {math => 97, english => 80};
Data::Dumperに関するFAQ
Q. Data::Dumperで日本語を出力すると日本語ではなく16進数の記号のようなものになってしまうときがあるのですが、解決策はありますか。
A. それは内部文字列(※1)を出力しようとしているために起こっています。出力する文字列は内部文字列ではなくバイト文字列である必要あります。とはいえ、ハッシュや配列の中に含まれるすべての文字列をバイト文字列に変換することは大変だと思います。これを助けてくれるData::Recursive::Encode.pmモジュールというものがCPANにありますので、Data::Dumperと組み合わせて利用してみるのもよいと思います。
※1 内部文字列とバイト文字列についてはEncodeモジュールの解説をご覧ください。