my @a = ('a0'..'a9'); unshift @a, \$a[2]; print Dump \@a; #### $ARRAY1 = [ 'R: $ARRAY1->[3]', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9' ]; $ARRAY1->[0] = \$ARRAY1->[3]; #### Rle(1) Alias Got: $ARRAY1 = [ 1, 'A: $ARRAY1->[0]', 'A: $ARRAY1->[0]', 1, 0, 'A: $ARRAY1->[3]', 1, 'A: $ARRAY1->[6]', 'A: $ARRAY1->[6]' ]; make_ro($ARRAY1->[0]); alias_av(@$ARRAY1, 1, $ARRAY1->[0]); alias_av(@$ARRAY1, 2, $ARRAY1->[0]); make_ro($ARRAY1->[4]); alias_av(@$ARRAY1, 5, $ARRAY1->[3]); make_ro($ARRAY1->[6]); alias_av(@$ARRAY1, 7, $ARRAY1->[6]); alias_av(@$ARRAY1, 8, $ARRAY1->[6]); EXPECT