web-dev-qa-db-ja.com

Perlハッシュデータ::ダンパー

Perlでは巨大なハッシュを分析する必要があるので、 Data::Dumper モジュールを使用してファイルに出力します。巨大なファイルなので読みづらいです。どういうわけかDumper出力をうまく出力できるので、探している文字列を見つけると、探している文字列が格納されているキー構造をすぐに確認できますか?

現在、私は単純なコードを使用しています。

            use Data::Dumper;
            ...
            print Dumper $var;

Nice出力を取得するための最良の構文または代替手段は何ですか?

11
Ωmega

私はほとんどいつも設定します

$Data::Dumper::Indent = 1;
$Data::Dumper::Sortkeys = 1;

Data::Dumper。最初のステートメントは、データ構造が数レベル深い場合に、出力をよりコンパクトにし、はるかに読みやすくします。 2番目のステートメントを使用すると、出力をスキャンして、最も関心のあるキーをすばやく見つけることが簡単になります。

データ構造にバイナリデータまたは埋め込みタブ/改行が含まれている場合は、

$Data::Dumper::Useqq = 1;

これにより、そのデータに適した読み取り可能な表現が出力されます。

perldoc でさらに詳しく。

21
mob

考えられる解決策の1つは、 Data :: Dumper :: Perltidy を使用することです。これは、Perltidyを介してData :: Dumpの出力を実行します。

#!/usr/bin/Perl -w

use strict;
use Data::Dumper::Perltidy;

my $data = [{ title => 'This is a test header' },{ data_range =>
           [ 0, 0, 3, 9] },{ format     => 'bold' }];

print Dumper $data;

__END__

プリント:

$VAR1 = [
    { 'title'      => 'This is a test header' },
    { 'data_range' => [ 0, 0, 3, 9 ] },
    { 'format'     => 'bold' }
];

別の方法は、 Data :: Dump を使用することです。

9
jmcnamara
$Data::Dumper::Sortkeys = 1;

より信頼性の高い結果を得たい場合は、次にダンパーに従う必要があります。その機能を操作するために適切なWordを入れてください。

0
user2524042