Perl更新数组

时间:2018-01-11 19:36:28

标签: mysql sql perl

我从数据库查询中获取数据,但我需要更新数组。

sub get_query_data{
   my ($self, $user_id) = @_;

   my $sql_query = "Select * from table";
   my ( $returndata ) = $self->_exec_and_fetch_all( $sql );

   for ( @$returndata ) {
       push( @$_, 'replace me' );
   }

   return $returndata;
}

在循环数据时,如何替换第三个元素? 查询中有数据返回,但上面的数据无效。

1 个答案:

答案 0 :(得分:2)

如果$self->_exec_and_fetch_all可以返回undef

my $rows = $self->_exec_and_fetch_all($sql);
if ($rows) {
   for my $row (@$rows) {
      $row->[2] = 'replaceme';
   }
}

return $rows;

否则,

my $rows = $self->_exec_and_fetch_all($sql);
for my $row (@$rows) {
   $row->[2] = 'replaceme';
}

return $rows;

my $rows = $self->_exec_and_fetch_all($sql);
$_->[2] = 'replaceme' for @$rows;
return $rows;