in reply to Re: Sorting Multilevel Hashes
in thread Sorting Multilevel Hashes

thats right . I want to sort by keys first and then value. It works fine when I do not attempt to add a sort by value. If you could provide an example of how to sort by value in this kind of hash I would really appreciate it.

Replies are listed 'Best First'.
Re^3: Sorting Multilevel Hashes
by hippo (Archbishop) on Apr 25, 2014 at 08:23 UTC

    Here's an example of sorting by key using recursion.

    #!/usr/bin/perl -Tw # # Multi-level hash sort use strict; use warnings; my %timing1 = initmyhash(); printsortedhash (\%timing1, ''); exit; sub initmyhash { # Obviously, put whatever sets up your hash here. return ( dog => 'rover', cat => { name => 'sandy', age => 10 } ); } sub printsortedhash { my ($this, $report) = @_; for my $key (sort keys %$this) { if (ref $this->{$key} eq 'HASH') { printsortedhash ($this->{$key}, $report . "\t $key") } else { print $report . "\t $key\t $this->{$key}\n"; } } }

    The FAQ linked above shows how to sort by value instead/also. Take your pick.