サーチ…


データ構造のダンプ

use Data::Dumper;

my $data_structure = { foo => 'bar' };
print Dumper $data_structure;

Data :: Dumperを使用すると、実行時にデータ構造や可変コンテンツを簡単に見ることができます。それはPerlと一緒に出荷され、簡単に読み込むことができます。 Dumper関数は、Perlコードのようにシリアル化されたデータ構造体を返します。

$VAR1 = {
        'foo' => 'bar',
}

これは、コード内のいくつかの値をすばやく調べるのに非常に役立ちます。それはあなたがあなたの武器の中で持っている最も便利なツールの一つです。 metacpanに関する全文を読んでください

スタイルのダンプ

時にはData :: Dumperでは不十分です。あなたが検査したいMooseオブジェクトを手に入れましたか?同じ構造の巨大な数?ものを並べ替えたい?色? Data :: Printerはあなたの友人です。

use Data::Printer;

p $data_structure;

ここに画像の説明を入力

Data :: PrinterはwarnようにSTDERRに書き込みます。これにより、出力を簡単に見つけることができます。デフォルトでは、ハッシュキーをソートしてオブジェクトを表示します。

use Data::Printer;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
p $ua;

オブジェクトのすべてのメソッドを調べ、内部もリストします。

LWP::UserAgent  {
    Parents       LWP::MemberMixin
    public methods (45) : add_handler, agent, clone, conn_cache, cookie_jar, credentials, default_header, default_headers, delete, env_proxy, from, get, get_basic_credentials, get_my_handler, handlers, head, is_online, is_protocol_supported, local_address, max_redirect, max_size, mirror, new, no_proxy, parse_head, post, prepare_request, progress, protocols_allowed, protocols_forbidden, proxy, put, redirect_ok, remove_handler, request, requests_redirectable, run_handlers, send_request, set_my_handler, show_progress, simple_request, ssl_opts, timeout, use_alarm, use_eval
    private methods (4) : _agent, _need_proxy, _new_response, _process_colonic_headers
    internals: {
        def_headers             HTTP::Headers,
        handlers                {
            response_header   HTTP::Config
        },
        local_address           undef,
        max_redirect            7,
        max_size                undef,
        no_proxy                [],
        protocols_allowed       undef,
        protocols_forbidden     undef,
        proxy                   {},
        requests_redirectable   [
            [0] "GET",
            [1] "HEAD"
        ],
        show_progress           undef,
        ssl_opts                {
            verify_hostname   1
        },
        timeout                 180,
        use_eval                1
    }
}

さらに構成することで、特定のオブジェクトを特定の方法でシリアライズしたり、オブジェクトを任意の深さまで含めることができます。完全な設定は、マニュアルに記載れています

残念ながらData :: PrinterはPerlに同梱されていないので、CPANやパッケージ管理システムからインストールする必要があります。

ダンプ配列リスト

my @data_array = (123, 456, 789, 'poi', 'uyt', "rew", "qas");
print Dumper @data_array;

Data :: Dumperを使用すると、リスト値を取得するのに簡単にアクセスできます。 Dumperは、Perlコードのようにシリアル化されたリストの値を返します。

出力:

$VAR1 = 123;
$VAR2 = 456;
$VAR3 = 789;
$VAR4 = 'poi';
$VAR5 = 'uyt';
$VAR6 = 'rew';
$VAR7 = 'qas';

user @dgwが示唆しているように、配列やハッシュをダンプするときは、配列リファレンスやハッシュリファレンスを使う方が良いでしょう。

$ref_data = [23,45,67,'mnb','vcx'];
print Dumper $ref_data;

出力:

$VAR1 = [
          23,
          45,
          67,
          'mnb',
          'vcx'
        ];

また、印刷時に配列を参照することもできます。

my @data_array = (23,45,67,'mnb','vcx');
print Dumper \@data_array;

出力:

$VAR1 = [
          23,
          45,
          67,
          'mnb',
          'vcx'
        ];

データショー

use Data::Show;と、関数showが自動的にエクスポートされuse Data::Show;実行される。この関数は唯一の引数として変数をとり、次のように出力します。

  1. 変数の名前
  2. その変数の内容は(可読な形式で)
  3. showれるファイルの行は
  4. ファイルshowはから実行されます

次は、 example.plファイルのコードであると仮定しexample.pl

use strict;
use warnings;
use Data::Show;

my @array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

my %hash  = ( foo => 1, bar => { baz => 10, qux => 20 } );

my $href = \%hash;

show @array;
show %hash;
show $href;

perl example.plは次のような出力を出します:

======(  @array  )=======================[ 'example.pl', line 11 ]======

    [1 .. 10]


======(  %hash  )========================[ 'example.pl', line 12 ]======

    { bar => { baz => 10, qux => 20 }, foo => 1 }


======(  $href  )========================[ 'example.pl', line 13 ]======

    { bar => { baz => 10, qux => 20 }, foo => 1 }

Data::Showドキュメントを参照してください。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow