Я лично использую этот: http://wyw.dcweb.cn/time.htm
Вы хотите:
$Data::Dumper::Terse = 1;
См. документацию .
$ Data :: Dumper :: Terse или $ OBJ-> Terse ([NEWVAL])
Если установлено, Data :: Dumper будет генерировать одиночные, не относящиеся к себе значения в виде атомов / условия, а не заявления. Это означает, что
blockquote>$VAR
n имен будут избегаться, где это возможно, но имейте в виду, что такие выходные данные не всегда могут быть проанализированы вeval
.Обновление (для ответа на комментарий ниже):
Data :: Dumper добавит правильную пунктуацию, чтобы вы могли вернуть именно то, что вы ей дали. Если вы дадите ему ссылку на хеш, то получите строку, которая начинается и заканчивается фигурными скобками.
$ perl -MData::Dumper -E'$Data::Dumper::Terse=1; say Dumper { foo => { bar => "baz" }}' { 'foo' => { 'bar' => 'baz' } }
Если вы дадите ему ссылку на массив, вы получите строку, которая начинается и заканчивается квадратными скобками.
$ perl -MData::Dumper -E'$Data::Dumper::Terse=1; say Dumper [ foo => { bar => "baz" }]' [ 'foo', { 'bar' => 'baz' } ]
Если по какой-то причине вы не хотите ни того, ни другого, предоставьте список значений.
$ perl -MData::Dumper -E'$Data::Dumper::Terse=1; say Dumper ( foo => { bar => "baz" })' 'foo' { 'bar' => 'baz' }
Если у вас есть хеш-ссылка и вы не хотите, чтобы окружающие скобки (честно говоря, кажутся странным требованием), прервите ссылку, прежде чем передавать ее в
Dumper()
. Это преобразует ссылку на хеш в хеш, и хеш будет «развернут» в список путем передачи функции.$ perl -MData::Dumper -E'$Data::Dumper::Terse=1; $ref = { foo => { bar => "baz" }}; say Dumper %$ref' 'foo' { 'bar' => 'baz' }