2013-01-18 57 views
1

下面是一段Perl代码。我想通过使用不同正则表达式($myo)和不同运算符($op)的若干查询循环并将结果保存到一个数组数组,而不是一个大的数组@result如何使用Perl将数组插入到数组中?

即,结果为MYO[0-9]*$阵列将是为每个操作员$results[0][0]$results[0][1]阵列...和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; 
     } 
    } 
+0

我*猜测*你的SQL只返回一列;如果没有,你真的想要一个数组数组的数组? – ysth

+0

数组的想法是使用for循环将结果填充到乳胶表中更容易。可能不是最有效的解决方案,但我想出了第一个 – moadeep

回答

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; 
} 
0

你可以只使用一个数组引用:

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

这会做到这一点。

编辑:这将创建一个10x10矩阵的引用。

相关问题