0

カタログ コードの配列があります。多くの重複があります。以下を使用して、一意の値と重複の数を見つけました。

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. 終了後、NEW 行を印刷します。この行は、各複製の行が印刷された後に印刷されます。この行は、複製後に印刷される他の行と似ています。
  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..
4

1 に答える 1

1
foreach my $key ( sort keys %myHash ) {

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

      print $key, "\n";
  }
  print "\n";
}
于 2013-07-19T03:56:42.087 に答える