16

複数の重複値を含む入力から配列に一意の要素を追加する必要があります。

重複する値を Perl 配列にプッシュしないようにするにはどうすればよいですか?

4

3 に答える 3

21
push(@yourarray, $yourvalue) unless grep{$_ == $yourvalue} @yourarray;

これは、プッシュする前に値が配列に存在するかどうかを確認します。値が存在しない場合はプッシュされます。

値が数値でない場合は、eq代わりに を使用する必要があります==

于 2013-04-09T06:29:21.830 に答える
16

次のようにハッシュを使用するだけです。

my %hash;
$hash{$key} = $value;  # you can use 1 as $value
...

これにより、重複するキーが自動的に上書きされます。

印刷する必要がある場合は、次を使用してください。

foreach my $key (keys %hash) {
    # do something with $key
}

キーをソートする必要がある場合は、使用します

foreach my $key (sort keys %hash) ...
于 2013-04-09T06:28:44.450 に答える