3

2D 配列がある場合、ループ内の部分配列全体にアクセスするにはどうすればよいですか? 今、私は持っています

foreach my $row(@data){  
 foreach my $ind(@$row){  
  #perform operations on specific index  
 }  
}

しかし、理想的には、次のようなものを探しています

foreach my $row(@data){  
  #read row data like $row[0], which if it has the data I'm looking for  
  #I can go ahead and access $row[3] while in the same row..
}  

私はPerlにかなり慣れていないので、まだ何かを理解していないかもしれませんが、私が望む方法で使用しようとすると、「グローバルシンボル "@row" には明示的なパッケージ名が必要です」を維持します.

4

3 に答える 3

6

あなたは近くにいます。$row配列参照であり、その要素には deference operator でアクセスします->[...]

foreach my $row (@data) {
    if ($row->[0] == 42) { ... }

$row[0]は配列変数の要素を参照します@row。これは、 とはまったく異なる (そしておそらく未定義であるため、Global symbol ...エラー メッセージが表示される) 変数です$row

于 2013-10-01T19:59:09.920 に答える
3

$rowコード サンプルで がサブ配列または配列参照であると想定されている場合は、 、 などの要素にアクセスするために間接表記を使用する必要があり$row->[0]ます$row->[1]

エラーの理由は、$row[0]実際には array の存在を暗示しているためです@row。これはおそらくスクリプトには存在しません。

于 2013-10-01T19:57:41.640 に答える