in reply to local element of my() array????

From The Camel, section 29.2.87 local

You can use local to give temporary values to individual elements of arrays and hashes, even lexically scoped ones:
if ($protected) { local $SIG{INT} = 'IGNORE'; precious(); # no interrupts during this function } # previous handler (if any) restored

The example is not lexically scoped but the note applies to your situation, as I found when I wrote this test:

my @foo = (0..9); print "[1] ", join('|', @foo), "\n"; local $foo[3] = 100; print "[2] ", join('|', @foo), "\n";

I learn something new here every day ...