[ { 'vtype_ug' => 1 'total_rate' => 400, }, { 'total_rate' => 220, }, { 'total_rate' => 700, 'vtype_ug' => 1, }, { 'total_rate' => 300, }, { 'total_rate' => 400, }, { 'total_rate' => 250, }, ] #### [ { 'vtype_ug' => 1 'total_rate' => 400, }, { 'total_rate' => 700, 'vtype_ug' => 1, }, { 'total_rate' => 220, }, { 'total_rate' => 250, }, { 'total_rate' => 300, }, { 'total_rate' => 400, }, ] #### my @sorted = sort { (exists $a->{vtype_ug}) ? -1 : 0} sort { $a->{total_rate} <=> $b->{total_rate} }