Perlの配列から、重複しないものだけを選び出したい場合、どのようにすればいいでしょうか?

なお、配列には、文字列が入る場合もあります。
宜しくお願い致します。

データ
@test = (1,1,1,2,1,2,3,3,4,0);

結果
@test = (4,0);

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2008/07/04 15:44:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:shintabo No.1

回答回数45ベストアンサー獲得回数10

ポイント35pt

# う~ん、美しくない・・・orz

#!/usr/bin/perl

use strict;

use warnings;

my @res;

my @test = (1,1,1,2,1,2,3,3,4,0);

for my $t (@test) {

push(@res, $t) if (grep(/^$t$/, @test) <= 1);

}

print join(",", @res). "\n";

__END__

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt
my @test = (1,1,1,2,1,2,3,3,4,0);
my %count = ();
$count{$_}++ for @test;
@test = grep { $count{$_} == 1 } @test;

こんなところ?

がんばればもうちょっときれいに書けるかも。

id:GoldenDawn No.3

回答回数426ベストアンサー獲得回数81

ポイント10pt
my @test = (1,1,1,2,1,2,3,3,4,0) ;

my %count ;
foreach (@test) {$count{$_}++ ;}
@test = grep {$count{$_} < 2} @test ;

print @test ;

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません