Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 将fetchall_arrayref添加到数组中的for循环_Perl - Fatal编程技术网

Perl 将fetchall_arrayref添加到数组中的for循环

Perl 将fetchall_arrayref添加到数组中的for循环,perl,Perl,如何循环我的arrayref并将行数据推送到我拥有的数组中 下面是我的代码,它只执行一次,没有循环,但我希望它对每一行执行一次,但不确定最佳方法: my $data2 = $sth->fetchall_arrayref({}); my $excludeFirstName = $data2 ->[0]->{EXCL_FRSTNAME}; my $excludeLastName = $data2 ->[0]->{EXCL_LASTNAME}; my @e

如何循环我的arrayref并将行数据推送到我拥有的数组中

下面是我的代码,它只执行一次,没有循环,但我希望它对每一行执行一次,但不确定最佳方法:

 my $data2 = $sth->fetchall_arrayref({});
 my $excludeFirstName = $data2 ->[0]->{EXCL_FRSTNAME};
 my $excludeLastName = $data2 ->[0]->{EXCL_LASTNAME};

    my @excluded;

    push (@excluded, $excludeFirstName." ".$excludeLastName);

如果您不需要$data2来做任何其他事情

my @excluded;
while (my $row = $sth->fetch_hashref()) {
   push @excluded, "$row->{EXCL_FRSTNAME} $row->{EXCL_LASTNAME}";
}

从某种程度上讲,您似乎真的在尝试获取两个数据库列EXCL_FRSTNAME和EXCL_LASTNAME的串联。如果是这种情况,那么将SQL查询更改为将连接作为单个列返回并仅获取该列会更有效。
my @excluded = map { "$row->{EXCL_FRSTNAME} $row->{EXCL_LASTNAME}" } @$data2;
my @excluded;
while (my $row = $sth->fetch_hashref()) {
   push @excluded, "$row->{EXCL_FRSTNAME} $row->{EXCL_LASTNAME}";
}
my $sql = 'SELECT CONCAT(EXCL_FRSTNAME, EXCL_LASTNAME) FROM ...';
my $excluded = $dbh->selectcol_arrayref($sql);