perlのお勉強

ぼちぼちperlのお勉強をしています.
昨日はshift()等学んだ.

my @a = (0, 1, 2);
print shift(@a)
>>0

shiftは配列を引数にとりその第一要素を返す.
次のような場合は動作が異なる.

sub a {
    my $x = shift // 1; # $xのデフォルト値の設定(引数(shift)がなければ1を代入)
    return $x + 1;
}
print &a();
print "\n";
print &a((0, 1, 2));
>>2
>>1

サブルーチン内で単独でshiftを呼ぶとデフォルトで@_を参照する.