I\'m trying to figure out Perl subroutines and how they work.
From perlsub I understand that subroutines are call-by-reference and that an assignment (like my(@copy) =
Firstly, you are confusing the @ sigil as indicating an array. This is actually a list. When you call Change(@a) you are passing the list to the function, not an array object.
The case with the hash is slightly different. Perl evaluates your call into a list and passes the values as a list instead.