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;
Данные :: Принтер записывает в STDERR, как warn
. Это облегчает поиск выходных данных. По умолчанию он сортирует хеш-ключи и смотрит на объекты.
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';
Как было предложено пользователем @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'
];
Данные показывают
Функция 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 }
См. Документацию для Data::Show
.