my @s1_events = map { $_->[0] } sort { $a->[1] <=> $b->[1] } map {[$_, $_->{month}]} @$events; #### for my $ev (@s1_events) { my @sd = map {"\t$_->{date} $_->{name}\n"} sort {$a->{date} <=> $b->{date}} @{$ev->{list}}; print "$ev->{name}\n@sd\n"; }