Поиск…


Демпинговые данные-структуры

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; выполняется. Эта функция принимает переменную в качестве единственного аргумента и выводит:

  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