in reply to Re^3: shift vs @_
in thread shift vs @_

Perhaps, but consider the starting point of one argument:
my( $foo, ) = @_;
compared to:
my $foo = shift;
I use the shift approach because it gives me a clean starting point and lets me extend my methods (or subroutines) easily. Having said that, I try to avoid extending public methods and prefer to create new methods when appropriate. But perhaps I'm drifting away from the original question a little..