수색…


데이터 구조 덤핑

use Data::Dumper;

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

Data :: Dumper를 사용하면 런타임에 데이터 구조 나 가변 내용을 쉽게 볼 수 있습니다. Perl과 함께 제공되며 쉽게로드 할 수 있습니다. Dumper 함수는 Perl 코드처럼 직렬화 된 데이터 구조를 반환합니다.

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

따라서 코드의 일부 값을 빠르게 살펴 보는 것이 매우 유용합니다. 그것은 당신이 무기고에 가지고있는 가장 편리한 도구 중 하나입니다. metacpan 에 대한 전체 설명서를 읽으십시오 .

스타일로 덤핑하기

때때로 Data :: Dumper로는 충분하지 않습니다. 검사하고 싶은 무스 오브젝트가 있습니까? 같은 구조의 거대한 숫자? 물건을 분류하고 싶습니까? 색깔? 데이터 :: 프린터 는 당신의 친구입니다.

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';

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 배열이나 해시를 덤프 할 때,

$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 파일의 코드라고 가정합니다.

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