【问题标题】:Perl Update arrayPerl 更新数组
【发布时间】:2018-06-21 05:29:15
【问题描述】:

我正在从数据库查询中取回数据,但我需要更新一个数组。

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

在循环数据时如何替换第三个元素? 有从查询返回的数据,但上面的他不起作用。

【问题讨论】:

  • 请发布实际代码。目前尚不清楚您要达到的目标。
  • 就是这样。我运行一个 select 语句,数据被返回到 returndata 数组。但我需要替换每一行的第三个元素。不知道你还需要什么?
  • @$_[2] = 'replace me'; 将替换数组的第三个元素。
  • @Barmar:会的,但比$_->[2] = 'replace me' 甚至${$_}[2] = 'replace me 要好得多。

标签: mysql sql perl


【解决方案1】:

如果$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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2012-10-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多