my @number = qw(2 3 4 5); my $curr_array = \@MDarray; while ($#number > 0) { # Stop when 1 element left my $index = shift @number; $curr_array = @$curr_array[$index]; } @$curr_array[$number[0]] = # Do something