in reply to Sharing a variable between subroutines

You need to pass by reference.
See section 10.5 Passing Arrays and Hashes by Reference
of the Camel book.

Try is code ...
sub callme () { my ($i, $a ) = @_; ; $a->[$i] = "printme-"; } sub specific { local @array = (0, 1, 2, 3, 4, 5); print "Init @array\n"; for (my $i=0; $i<6; $i++) { &callme($i,\@array); } print "Now @array\n"; } &specific;


--
Its like a dog that can sing and dance.
It's remarkable because it can do it.
Not that it can do it well.