$ a and @a are not the same thing. $ a, since you assign it first, this is a reference to an anonymous array. It has nothing to do with @a, which is an array (not a link).
$ b = \ @ a # $ b contains a link to @a, but not to $ a.
$ a, @ a,% a are all different variables. So if you have
my @a = (1,2,3,4);
And then you declare
my $ a;
$ a does not contain a link to @a;
Variables are stored in a character table by type; scalar, hash, array, etc. That way you can have $ a, @ a,% a, & a ... and don't conflict with each other.
The fact is that
not happening. It still indicates the area of โโmemory in which @a is stored is different from where $ a is stored.
jmcneirney
source share