my @array=(1,2,3,4,5,6,7,8); my @array2; my $length = @array; my $length2 = $length-1; my $i; for $i(0..$length2){ push @array2, $array[$i]; $i+=2; } for $i(1..$length){ push @array2, $array[$i]; $i+=2; } undef @array; @array=reverse(@array2); undef @array2; for $i(1..$length){ push @array2, $array[$i]; $i+=2; } for $i(0..$length2){ push @array2, $array[$i]; $i+=2; } undef @array; @array=reverse(@array2); print @array;