• ベストアンサー

perlのデータ構造? デバッグに使いたい

Perlでよく ハッシュをprintした場合、 HASH(0x2241be4)と表示されますが、 こちらがハッシュを意識しなくてもだいたいの構造が わかるように整形・表示して、具体的な中身を 表示させたいのですが可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okiyoshi
  • ベストアンサー率34% (11/32)
回答No.2

# Data::Dumperなどはどうでしょう? use Data::Dumper; my $foo = { a=>'A', b=>[ 1,2,3 ] }; print Dumper( $foo );

その他の回答 (1)

回答No.1

それはハッシュのリファレンス(参照アドレス)です。 print $hash;みたいな形で出力していませんか? my %hash; と定義されたハッシュ自体を出力するだけなら、 print %hash とすると、キーと値が順番に連結された状態で出力できます。 別々に分けるなら、each関数を使って while(($key,$value) = each %hash){ print "$key => $value\n"; } としてあげればOKです。 変数がリファレンスだった場合、ref関数でどの型のリファレンスかがわかりますので、型別に分岐処理をすればいいです。 参考URLの「ハッシュ」「リファレンス」の項が参考になると思います。

参考URL:
http://www.rfs.jp/sb/perl/index.html

関連するQ&A