in reply to Array names

This appears to work ok:
$a ='string1'; @$a[0] = 'string2'; print @string1;
What exactly is your problem?
Addition:oops - Note however that this will not work if you have
use strict;
which is always a good idea.
I would examine why you want to write your code in this way as I am sure there is a 'better' way of doing it.
If you could show more of your code I/we could probably give you a better answer.