【问题标题】:removing excess tab from loop in perl从 perl 中的循环中删除多余的选项卡
【发布时间】:2015-06-03 18:03:35
【问题描述】:

一个涉及循环的基本问题。如果我正在做一个基本循环,我想使用示例代码从哈希哈希(格式:$hash_of_table_data{$headers}{$entry} = 1)生成一个制表符分隔的表:

foreach my $rowheader (keys %hash_of_table_data) {
  print "$rowheader\t";
  foreach my $entry (keys %{ $hash_of_table_data{$rowheader}}) {
    print "$entry\t";
  }
  print "\n";
}

因此,通过执行这样的循环,在打印每行的最后一个元素的末尾,它将有一个额外的选项卡。有没有一种简单的方法来生成类似的列表,但不会在最后添加额外的选项卡?还是一些简单的类似 chomp 的功能,将删除在执行新行之前添加的最后一个选项卡? (我希望它在每个元素之间添加标签,除了最后一个元素)。

【问题讨论】:

  • 使用join函数。

标签: perl loops for-loop


【解决方案1】:

正如人们评论的那样,join 似乎是解决这个问题的好方法。 您可以在一行中执行此操作:

print join("\t", $_, keys %{$hash{$_}}) . "\n" foreach keys %hash;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多