68user's page 掲示板

Prev< No. 2433〜2434> Next  [最新発言に戻る] [過去ログ一覧]
No. 2433 # ミング [E-mail] 2002/01/23 (水) 17:33:53
今日は。

Awkで

{AA [$1]++}
END {for (BB in AA) ...........}

とやると、AAの中に有る同じ名前のものが幾つあるか数えてくれると思うの
ですが、Perlではどうやったら同じことが出来ますか?

例えば
@array=(9, 9, 9, 3, 3, 3, 2, 2, 1)
とすると、

9は3個、3は3個、2は2個1は1個あるので、

9=3
3=3
2=2
1=1

としたいのですが、宜しくお願いいたします。

No. 2434 # ふくし [E-mail] 2002/01/23 (水) 18:47:10
>>2433 ミング
さん:

なんとなく似せて書くと

#! perl

@array = (9,9,9,3,3,3,2,2,1);

for (@array) {
        $array2{$_}++;
}

for (reverse sort keys %array2) {
        print "$_=$array2{$_}\n";
}

とか。
「ハッシュ」の機能を使っています。

@array の順番には関係なく、
常に大きな数字から出力していますがいいでしょうか。
(ハッシュを使うと、順不同になるので、、)

Prev< No. 2433〜2434> Next  [最新発言に戻る] [過去ログ一覧]