my @orig_array = qw(0 1 1 0 1 0 0 0 1 1 1 0 0 0 0); my @new_index_order = qw(8 3 4 9 11 6 7 0 14 10 1 12 2 5 13);; my @new_array = @orig_array[ @new_index_order ];; print @new_array;; 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0