How can I view the contents of a hash in Perl6 (in a fashion similar to the Perl 5 modules Data::Dump or Data::Show)?
Perl6 docs seem to recommend using .perl
on the data structure, but it looks like pretty-printing requires extra work:
Given:
my @array_of_hashes = ( { NAME => 'apple', type => 'fruit' }, { NAME => 'cabbage', type => 'no, please no' }, );
Perl 5
use Data::Dumper; $Data::Dumper::Useqq = 1; print Dumper \@array_of_hashes; # Note the backslash.
Perl 6
say @array_of_hashes.perl; # .perl on the array, not on its reference.
I have since made a PrettyDump module that might be handy:
use v6;
use PrettyDump;
my %title_for = (
"Book 1" => { "Chapter 1" => "Introduction", "Chapter 2" => "Conclusion" },
"Book 2" => {
"Chapter 1" => "Intro",
"Chapter 2" => "Interesting stuff",
"Chapter 3" => "Final words",
},
);
say PrettyDump.new.dump: %title_for;
With output:
Hash={
:Book 1(Hash={
:Chapter 1("Introduction"),
:Chapter 2("Conclusion")
}),
:Book 2(Hash={
:Chapter 1("Intro"),
:Chapter 2("Interesting stuff"),
:Chapter 3("Final words")
})
}
There are some formatting options you can give to PrettyDump
too.
dd for Data Dump in rakudo.
my @array_of_hashes = (
{ NAME => 'apple', type => 'fruit' },
{ NAME => 'cabbage', type => 'no, please no' },
);
dd @array_of_hashes;