在Perl中将数组分配给变量而不使用额外的空行

时间:2013-07-05 17:08:40

标签: arrays perl variables loops foreach

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:4)

也许你可以尝试下一个:

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