配列とスカラーをPerlサブルーチンに渡す [重複] 質問する

配列とスカラーをPerlサブルーチンに渡す [重複] 質問する

重複の可能性あり: 1 つの配列と 1 つの文字列を引数として関数に渡すにはどうすればよいでしょうか?

最初のパラメータを配列として、2番目のパラメータをスカラーとして受け取る関数またはサブルーチンがあります。たとえば、

sub calc {
    my @array = $_[0];
    my $scalar = $_[1];
    print @array, $scalar;
}

問題は、関数が配列を渡された配列の最初の値と等しくし、スカラーを渡された配列の2番目の値にすることです。最初の配列を配列全体にしたい場合、配列のディープコピーを作成する必要はありません。たとえば、

my @array = ('51', 'M');
my $scalar = 21;

そして

calc(@array, $scalar)

51 M必要なときに印刷します51 M 21

ベストアンサー1

参照として渡す必要があります:

calc(\@array, $scalar)

そして次のようにアクセスします:my @array = @{$_[0]};

おすすめ記事