Perl Language
디버그 출력
수색…
데이터 구조 덤핑
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;
실행됩니다. 이 함수는 변수를 유일한 인수로 취하여 다음과 같이 출력합니다.
- 변수의 이름
- 해당 변수의 내용 (읽을 수있는 형식)
-
show
지는 파일의 라인은 - 파일
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 }