Как мне управлять именами переменных в 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.