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

Zadeh has asked for the wisdom of the Perl Monks concerning the following question:

Hi, When writing subroutines, I notice in the docs that usually a "my $var = shift;" idiom is used if the sub only expects one input, and a "my ($v1,$v2,$v3) = @_;" kind of idiom for multiple inputs. Why use shift, though? Or, put another way, why not always use @_?