my @array1 = (1,2,3,4,5,6,7,8,3,5,6,3,8,1,7,8); my @newarray; my @tmparray; for (0..$#array1) { if ($_> 0 && $array1[$_] < $array1[$_-1]) { push (@newarray, [@tmparray]); undef(@tmparray); } push (@tmparray, $array1[$_]); } push (@newarray, [@tmparray]) if defined @tmparray; #### my @array3; for (@newarray) { push @array3, @$_; } @array3 = sort @array3;