【问题标题】:Assign Array to Variable without Extra Blank Line in Perl在 Perl 中将数组分配给没有额外空行的变量
【发布时间】:2013-07-03 20:22:16
【问题描述】:

我正在编写一个将数组中的内容上传到数据库的 perl 脚本。为此,我创建了一个“foreach”语句,该语句循环遍历数组并将其内容分配给一个变量:

foreach my $line (@array)
    { $data .= "$line\n" }

此脚本有效,我可以将变量上传到我的数据库中。但是,由于语句末尾的换行符(用于保留数组的原始换行符),我的变量在末尾包含一个额外的空行,它也被放入数据库中。 摆脱这个空白行的最佳方法是什么?这是我只能在循环之后真正修复的东西吗?我对 Perl 非常陌生,所以我有点困惑。谢谢!

【问题讨论】:

    标签: arrays perl variables loops foreach


    【解决方案1】:
    my $data = join "\n", @array;
    

    join 内置函数采用分隔符和列表,并连接列表中的元素。相当于

    sub join ($@) {
      my $sep = shift;
      @_ or return "";
      my $str = shift;
      $str .= $sep . shift while @_;
      return $str;
    }
    

    【讨论】:

    • ;) 快了 35 秒,写了 3 倍以上……我打字速度慢 :(
    • 完美运行。感谢您的回答和解释!
    【解决方案2】:

    也许你可以试试下一个:

    my $data = join "\n", @array;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2016-12-12
      • 1970-01-01
      • 2020-10-30
      • 2013-06-02
      • 2014-07-20
      • 1970-01-01
      相关资源
      最近更新 更多