# 1. non-destructive my $var = $_[0]; # first element of @_ my @list = @_; # complete @_ # 2. destructive my $var = shift; # first element gets removed from @_ my ($foo, $bar) = map { shift } 1,2; # two elements get removed from @_ #### sub foo { my $foo = $_[0]; my $quux = baz(@_) return $foo ^= $quux; }