1

以下は、Perl コードのスニペットです。$myo異なる正規表現 ( ) と異なる演算子 ( ) を使用して複数のクエリをループし$op、結果を 1 つの大きな配列ではなく配列の配列に保存したいと考えています@result

つまり、 for の結果の配列はMYO[0-9]*$、各 operator $results[0][0], $results[0][1]... および for MYO[0-9]*R$, $results[1][0],の配列になり$results[1][1]ます。

何か案は?

my @tech_ops =  ("AR","DB","GM","LW","MM","SA");
  my @results;

    for my $myo (qw(MYO[0-9]*$ MYO[0-9]*R$ MYO[0-9]*T$ MYO[0-9]*U$)) {
      foreach $op (@tech_ops)
        {
           $sth->execute($myo, $date_stop, $date_start,$op) 
         or die "Couldn't execute query for $myo: " . $sth->errstr;
           push @results, $sth->fetchrow_array;
         }
    }
4

3 に答える 3

5

fetchall_arrayrefメソッドの代わりにメソッドを使用しfetchrow_arrayます。

したがって、次の行を置き換えるだけです。

push @results, $sth->fetchrow_array;

この行で:

push @results, $sth->fetchall_arrayref;

以下は、すべての DBI ステートメント ハンドラー メソッドのドキュメントです。

于 2013-01-18T17:10:11.650 に答える
4
my @tech_ops =  ("AR","DB","GM","LW","MM","SA");
my @results;

for my $myo (qw(MYO[0-9]*$ MYO[0-9]*R$ MYO[0-9]*T$ MYO[0-9]*U$)) {
    my @myo_results;
    foreach $op (@tech_ops) {
        $sth->execute($myo, $date_stop, $date_start,$op) 
            or die "Couldn't execute query for $myo: " . $sth->errstr;
        push @myo_results, $sth->fetchrow_array;
    }
    push @results, \@myo_results;
}
于 2013-01-18T17:21:53.630 に答える
0

配列参照を使用できます。

my $ref;
for my $i (1..10) {
   for my $j (1..10) {
        push @{$ref->[$i]}, $j;
    }
}

それはそれをします。

編集:これにより、10x10マトリックスへの参照が作成されます。

于 2013-01-18T17:17:47.487 に答える