http://www.perlmonks.org?node_id=451645


in reply to Re^2: Differ. array and List
in thread Differ. array and List

However, there are some subs which expect their arguments to be array variables (because the variable's data will be altered). Examples include pop() and shift().

I think this is incorrect. Any list of arguments supplied to a subroutine are inserted into the array @_ and pop and shift handle that accordingly. There's no such thing as subs expecting array variables.

Replies are listed 'Best First'.
Re^4: Differ. array and List
by halley (Prior) on Apr 26, 2005 at 16:02 UTC
    Uh, write a Perl subroutine that works exactly like pop() without (1) taking a (@) prototype signature, and (2) expecting that $_[0] is an lvalue array reference. I'd like to see the code.

    --
    [ e d @ h a l l e y . c c ]

      Oops. I don't think I thought about what I was writing, and I certainly don't seem to have read what you wrote. However, from my (probably limited) understanding of @, \@ whatever prototyping, the context is relatively limited and has to emulate a function call. You can't use any of this for method calls, for example. I see what you mean, though.