Problems? Is your data what you think it is? | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
I think what is really troubling you is the ambiguity between setting a symbol's slot and assigning to a symbol in Perl. (not sure if this is proper terminology) Pure Perl has neither an explicit alias operator, nor an explicit unalias operator.² So if a scalar variable $a is an alias to $b you can't easily say $a=42 without changing $b , i.e. replacing the alias in the $a -"slot" with a literal 42.¹ But when operating with arrays like @_ you have the choice. $_[0]=42 is accessing the alias behind, but @_=(42) will replace the content of the slot.
It has already been shown how to access multiple aliases at once (slicing), similarly you can use splice to access multiple slots of an array at once. I hope the distinction between setting a slot and assigning to an alias is clearer now. :)
¹) But you can always use my $a=42 in a new scope or local $a=42 if it's a package var. In reply to Re^2: Accessing Arguments inside Subroutines via @_
by LanX
|
|