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.