Perlでのshift関数は、普通、配列変数を引数にとり、配列変数から一番若いインデクスの要素を取り出します。 しかし、配列変数の引数がない単独shiftを結構見かけます。 これは、mainモジュールでは「@ARGV」がデフォルトの引数で、sub内では、「@_」がデフォルトの引数になるのです。 ちなみに、「@ARGV」は、コマンドラインの引数の配列で、「@_」は、サブルーチンの引数の配列です。 ◆サンプル use strict; use warnings; my $arg = shift || 2000; print $arg, "\n"; subx(); subx(4000); sub subx { my $para = shift || 3000; print $para, "\n"; } ◆サンプル実行結果 C:\perltest>perl shift.pl 1000 1000 30