in reply to easiest way to print the content of a hash?

There's always Data::Dumper.

Or, assuming your hash values are scalars, you can step through the keys and print out the contents, like this:

foreach (sort keys %myhash) { print "$_ : $myhash{$_}\n"; }

No good deed goes unpunished. -- (attributed to) Oscar Wilde

Replies are listed 'Best First'.
Re^2: easiest way to print the content of a hash?
by McDarren (Abbot) on Jul 13, 2006 at 15:48 UTC
    I can never quite get why nobody (apart from me) ever seems to recommend Data::Dumper::Simple for debugging?

    It's way easier to use than Data::Dumper, especially for more complex data structures. There is no need to pass references, and the output contains the actual variable names - instead of "VAR1", "VAR2", etc.
    I know you can get the same thing with Data::Dumper using Dumper->Dump, but this can very quickly become quite unwieldy.

    About the only objection I could imagine to using Data::Dumper::Simple is that is uses source filters, but if you're only using it for debugging - and not in production code - what's the problem?

    Just curious....
    Darren :)

      Perhaps because it's a source filter? (Yes, I read your post. And yes, that's my reason.)

      Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
      How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart
      There is no need to pass references, and the output contains the actual variable names - instead of "VAR1", "VAR2", etc.
      it's time again to quote my .vimrc:
      :imap dumper <ESC>^iwarn Data::Dumper->Dump([\<ESC>llyw$a], ['<ESC>pa']);<ESC>
      let's you type '@myarraydumper' and you'll get
      warn Data::Dumper->Dump([\@myarray], ['myarray']);

      Data::Dumper is in the core, and with the help of my editor i don't have to type much to get a decent debugging output.

Re^2: easiest way to print the content of a hash?
by saberworks (Curate) on Jul 13, 2006 at 15:59 UTC
    use Data::Dumper; my %hash = ( key1 => 'value1', key2 => 'value2' ); print Dumper(%hash); # okay, but not great print "or\n"; print Dumper(\%hash); # much better
    And the output:
    $VAR1 = 'key2'; $VAR2 = 'value2'; $VAR3 = 'key1'; $VAR4 = 'value1'; or $VAR1 = { 'key2' => 'value2', 'key1' => 'value1' };