Как мне управлять именами переменных в Perl Data::Dumper?

У меня есть этот простой скрипт на Perl:

#! /usr/bin/perl -w

use strict;
use Data::Dumper;

my %foo = ( 'abc' => 1 );

print Dumper(\%foo);

Это выводит:

$VAR1 = {
          'abc' => 1
        };

Как мне заставить это вывести это вместо этого?

%foo = (
         'abc' => 1
       );

4 ответа

Решение
print Data::Dumper->Dump( [ \%foo ], [ qw(*foo) ] );

Расширенный синтаксис принимает два массива: один из скаляров для дампа и один из имен для использования. Если перед именем стоит *, а соответствующий скаляр - это arrayref или hashref, создается массив или хэш.

use Data::Dumper;

$Data::Dumper::Terse = 1;

print '%foo = '.(Dumper \%foo);

В дополнение к ответу ysth, вы можете использовать модуль Data::Dumper::Names от Ovid.

Кроме того, Data:: Dumper:: Simple делает примерно это.

Другие вопросы по тегам