my @array = (8,14,32,29); @new = sort{$a <=> $b}@array;#sorting $i = 'first';#set flag foreach (@new){ if ($i eq 'first'){ push (@subarray1, $_); $i = 'second'; }else{ push (@subarray2, $_); $i = 'first' } } output: @subarray1 = (8,32) # total value 40 @subarray2 = (14,29) # total value 43