2011-06-28 5 views
0

以下は、ファイル/ STDINに複数回存在するエントリのリストを与えるperlスクリプトです。 このスクリプトを更新して、エントリが何回繰り返されたかを表示します。行が繰り返される回数を含めるようにperlスクリプトを更新する

#!/usr/bin/perl 

use strict; 
use warnings; 

my %duplicates; 

while (<>) { 
    chomp; 
    $duplicates{$_}++; 
} 

foreach my $key (keys %duplicates) { 
    if ($duplicates{$key} > 1) { 
    delete $duplicates{$key}; 
    print "$key\n"; 
    } 
} 

答えて

0

キーに反復しながら、あなたは$duplicates{$key}を印刷することができます:

#!/usr/bin/perl 

use strict; 
use warnings; 

my %duplicates; 

while (<>) { 
    chomp; 
    $duplicates{$_}++; 
} 

foreach my $key (keys %duplicates) { 
    if ($duplicates{$key} > 1) { 
     print "$key is repeated $duplicates{$key} times\n"; 
     delete $duplicates{$key}; 
    } 
} 
+0

ありがとうMarcoS、これは私が欲しかったものです。キイオス! – user744121

+0

あなたは大歓迎です! – MarcoS

4

delete組み込みは、削除された値を返します。だからあなたは使用することができます:

print "$key: ", delete $duplicates{$key}, "\n"; 
0

ちょうどprint $duplicates{$key}。または私は何かを逃していますか?

さらに、delete $duplicates{$key}が必要ですか?

関連する問題