Yeah, but if you are only passing a couple of scalars, along with a single array (as in the original sub design), then passing by reference is not necessarily superior. It depends on what you are doing. Not passing by reference allows for more flexible calls to the sub:
scalar_and_array_sub($foo, $bar, @values[1..5]);
scalar_and_array_sub($foo, $bar, $value1, $value2, $value3);
scalar_and_array_sub($foo, $bar, split(/\s/, $string));
With pass by reference, these would have messier syntax.
When's the last time you used duct tape on a duct? --Larry Wall