【问题标题】:Perl - Enter a row to .csv file only after all duplicates in hash have printedPerl - 仅在哈希中的所有重复项都已打印后才在 .csv 文件中输入一行
【发布时间】:2013-07-19 03:47:30
【问题描述】:

我有一组目录代码。有很多重复。我使用以下方法来查找唯一值和重复数:

my %myHash = ();

foreach (@cc) {
  $myHash{$_}++;
}

foreach ( sort keys %myHash ) {
  print "\n $_ : $myHash{$_}";
}

输出看起来像这样:

PM01  :  10<br>
PM02  :  10<br>
PM03  :  6<br>
etc..

好的,现在我想将一些行打印到 .csv 文件中。

我的目标是创建某种执行以下逻辑的 if 语句:

  1. 找出第一个哈希键的重复次数,打印 $number_of_duplicates。这些行都是相似的。
  2. 完成后,打印一个新行,包含一些东西。此行将在每个副本打印一行后打印。此行与重复后打印的其他行类似。
  3. 对所有哈希键重复。

为了清楚起见,我已经正确打印出我需要的内容。我的问题是如何在打印完每个副本后多打印一行?

例如,假设这是打印出来的内容:

PM01
PM01
PM01
PM01
PM01
PM01
PM01
PM01
PM01
PM01
NEW LINE HERE
PM02
PM02
PM02
PM02
PM02
PM02
PM02
PM02
PM02
PM02
NEW LINE HERE
etc..

【问题讨论】:

  • 很抱歉没有完成标题。 excel标签的意义在于我正在操作一个excel电子表格,我想也许有人会问,你是为一个excel电子表格做的吗?答案是肯定的。

标签: perl excel csv


【解决方案1】:
foreach my $key ( sort keys %myHash ) {

  foreach my $iterator ( 1 .. $myHash{$key} ) {

      print $key, "\n";
  }
  print "\n";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-11
    • 2017-09-30
    • 2016-12-18
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2012-03-09
    相关资源
    最近更新 更多