In Perl 5, if I want to see the contents of a hash, I can use Data::Show
, Data::Dump
, or Data::Dumper
.
For example:
use Data::Show;
my %title_for = (
'Book 1' => {
'Chapter 1' => 'Introduction',
'Chapter 2' => 'Conclusion',
},
'Book 2' => {
'Chapter 1' => 'Intro',
'Chapter 2' => 'Interesting stuff',
'Chapter 3' => 'Final words',
}
);
show(%title_for);
Which outputs:
======( %title_for )======================[ 'temp.pl', line 15 ]======
{
"Book 1" => { "Chapter 1" => "Introduction", "Chapter 2" => "Conclusion" },
"Book 2" => {
"Chapter 1" => "Intro",
"Chapter 2" => "Interesting stuff",
"Chapter 3" => "Final words",
},
}
Is there anything equivalent in Perl 6? I thought I remember Damian Conway discussing this feature at YAPC 2010, but I have since lost my notes and Googling hasn't helped.
use v6;
my %title_for = (
"Book 1" => { "Chapter 1" => "Introduction", "Chapter 2" => "Conclusion" },
"Book 2" => {
"Chapter 1" => "Intro",
"Chapter 2" => "Interesting stuff",
"Chapter 3" => "Final words",
},
);
%title_for.say;
The closest thing that I found to working is %title_for.say
. However, it seems messy for nested hashes:
Book 1 => Chapter 1 => Introduction, Chapter 2 => Conclusion, Book 2 => Chapter 1 => Intro, Chapter 2 => Interesting stuff, Chapter 3 => Final words
I'm using Perl6 running on MoarVM from the January 2015 release of Rakudo Star.
dd for Data Dump in rakudo.
my @array_of_hashes = (
{ NAME => 'apple', type => 'fruit' },
{ NAME => 'cabbage', type => 'no, please no' },
);
dd @array_of_hashes;
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With