あなたはするでしょう:
sub wut {
my @args = @_;
...
}
@_
関数を呼び出すと、Perlは自動的に特別な変数を設定します。複数の方法でアクセスできます。
この形式では、配列@others
を最後に配置する必要があることに注意してください。前に配置すると、のすべての要素が丸呑みになるためです@_
。言い換えれば、これは機能しません:
sub wut {
my ( $arg1, @others, $arg2 ) = @_;
...
}
shift
から値を引き出すために使用することもできます@_
:
sub wut {
my $arg1 = shift;
my $arg2 = shift;
my @others = @_;
...
}
引数を指定しない場合は、shift
自動的に機能することに注意してください。@_
編集:ハッシュまたはハッシュ参照を使用して、名前付き引数を使用することもできます。たとえば、次のように電話したwut()
場合:
wut($arg1, { option1 => 'hello', option2 => 'goodbye' });
...次に、次のようなことを行うことができます。
sub wut {
my $arg1 = shift;
my $opts = shift;
my $option1 = $opts->{option1} || "default";
my $option2 = $opts->{option2} || "default2";
...
}
これは、名前付きパラメーターを関数に導入するための良い方法です。これにより、後でパラメーターを追加でき、パラメーターが渡される順序を気にする必要がなくなります。