Shawn H Corey said: > On 10-09-13 07:50 AM, Nadim Khemir wrote: > > I'm curious, someone care to comment? > > I'm surprised that a specialized variable like @_ is not optimized for > shift. All that is needed is to more the pointer to the next item in > the array. The space used by the previous first item need not be > recovered right away; the entire array will be recovered when the sub > finishes. And this won't use more memory. Simply because if you copy > instead, the whole array stays around until the sub finishes anyway.
I don't know if this would have any implications as to the behavior of a snippet like the following (i don't know perl's internals to know if it would or not), but if it does it could break a lot of things. sub foo { my $foo = shift; $foo = "bar"; } would not doing a copy for shift like that cause it to act like sub foo {$_[0] = "bar"} does?