Как мне управлять именами переменных в Perl Data :: Dumper? - PullRequest
9 голосов
/ 26 мая 2009

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

#! /usr/bin/perl -w

use strict;
use Data::Dumper;

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

print Dumper(\%foo);

Это выводит:

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

Как мне сделать так, чтобы это выводилось вместо этого?

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

Ответы [ 4 ]

23 голосов
/ 26 мая 2009
print Data::Dumper->Dump( [ \%foo ], [ qw(*foo) ] );

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

8 голосов
/ 26 мая 2009

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

4 голосов
/ 27 декабря 2013
use Data::Dumper;

$Data::Dumper::Terse = 1;

print '%foo = '.(Dumper \%foo);
2 голосов
/ 26 мая 2009

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

...