my @sorted = sort { $a->{total_rate} <=> $b->{total_rate} } @array; @sorted = ( (grep { defined $_->{vtype_ug} } @sorted), (grep { not defined $_->{vtype_ug} } @sorted) );