0
に2次元配列を渡す私はこの配列を有します。しかし、私がルーチンの中にいるとき。この方法で$ [$ sizeNewArrayName]の配列にアクセスすると、値の代わりにアドレスが得られます。 @newArrayNamesは1次元の配列で、問題なく、$ [1]、$ [2]、...、$ [$ sizeNewArrayName]の要素にアクセスできます。誰かが私を助けることができますか?サブルーチンのPerl
に2次元配列を渡す私はこの配列を有します。しかし、私がルーチンの中にいるとき。この方法で$ [$ sizeNewArrayName]の配列にアクセスすると、値の代わりにアドレスが得られます。 @newArrayNamesは1次元の配列で、問題なく、$ [1]、$ [2]、...、$ [$ sizeNewArrayName]の要素にアクセスできます。誰かが私を助けることができますか?サブルーチンのPerl
Perlはサブルーチン引数を1つの長いリストにマッシュします(したがって、別のリスト/配列変数を識別することはできません)。この場合、配列への参照を送信してから、あなたはそれらを使用するために行く:
use warnings;
use strict;
newSubject($name, \@newArrayNames, \@newMatrizGrades);
sub newSubject {
my ($name, $names, $grades) = @_;
for (@$names){
# do something
}
print "$grades->[0][0]\n";
}
は、このリンクを参照してください... http://stackoverflow.com/questions/5680147/passing-two-or-more-arrays-to-a-perl-subroutineはあなたを助けるべきです...配列を逆参照する必要があります –
配列をサブ配列に渡すことはできません。あなたが持っているものは 'newSubject($ name、$ newArayNames [0]、$ newArayNames [1]、...、$ newMatrizGrades [0]、$ newMatrizGrades [1]、...)'と同じです。代わりに。 – ikegami