人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlの配列から、重複しないものだけを選び出したい場合、どのようにすればいいでしょうか?
なお、配列には、文字列が入る場合もあります。
宜しくお願い致します。

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

結果
@test = (4,0);

●質問者: ele_dir
●カテゴリ:インターネット ウェブ制作
✍キーワード:Perl test いもの データ 文字列
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● shintabo
●35ポイント

# う?ん、美しくない・・・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__


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

こんなところ?

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


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

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

print @test ;
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ