use strict; use warnings; my $sqldata = [ { level => 2, menuname => 'cccccc' }, { level => 3, menuname => '333333' }, { level => 3, menuname => '222222' }, { level => 1, menuname => 'CCCCCC' }, { level => 2, menuname => 'bbbbbb' }, { level => 1, menuname => 'BBBBBB' }, { level => 1, menuname => 'AAAAAA' }, { level => 3, menuname => '111111' }, { level => 2, menuname => 'aaaaaa' }, ]; print $_->{level}." ".$_->{menuname}."
\n" for sort { $a->{level} <=> $b->{level} || $a->{menuname} cmp $b->{menuname} } @$sqldata;