$foo = shift;ってなんだろうか?

perl shift(Google)
shiftについて
$foo = shift(Google)
サブルーチンで引数を受け取るときに、よく見るパターンだそうです。
下記の例は、sub1, sub2は全く同じ動作になり、sub3も@_の長さが短くなること以外は同じ。

&sub(10, 20);#このように呼び出す。

sub sub1{
	my $foo = $_[0]; #第1引数を受け取る
	my $foo = $_[1]; #第2引数を受け取る
}

sub sub2{
	my ($boo, $foo) = @_;#第1、第2引数の受け取り
}

sub sub3{
	my $foo = shift; #第1引数の受け取り
	my $foo = shift; #第2引数の受け取り
}