В целях отладки я часто буду использовать YAML
.
use strict;
use warnings;
use YAML;
my %variable = ('abc' => 123, 'def' => [4,5,6]);
print "# %variable\n", Dump \%variable;
Результат:
# %variable
---
abc: 123
def:
- 4
- 5
- 6
В других случаях я буду использовать Data::Dump
. Вам не нужно устанавливать столько переменных, чтобы получить его для вывода в хорошем формате, чем для Data::Dumper
.
use Data::Dump = 'dump';
print dump(\%variable), "\n";
{ abc => 123, def => [4, 5, 6] }
Совсем недавно я использовал Data::Printer
для отладки.
use Data::Printer;
p %variable;
{
abc 123,
def [
[0] 4,
[1] 5,
[2] 6
]
}
(результат может быть намного более красочным на терминале)
В отличие от других примеров, которые я показал здесь, этот предназначен явно только для демонстрации. Который появляется легче, если вы выкидываете структуру связанной переменной или объекта.
use strict;
use warnings;
use MTie::Hash;
use Data::Printer;
my $h = tie my %h, "Tie::StdHash";
@h{'a'..'d'}='A'..'D';
p %h;
print "\n";
p $h;
{
a "A",
b "B",
c "C",
d "D"
} (tied to Tie::StdHash)
Tie::StdHash {
public methods (9) : CLEAR, DELETE, EXISTS, FETCH, FIRSTKEY, NEXTKEY, SCALAR, STORE, TIEHASH
private methods (0)
internals: {
a "A",
b "B",
c "C",
d "D"
}
}