- ベストアンサー
データの集計方法について
- CGIで表形式のデータを集計する方法について詳しく教えてください。
- 4番目のフィールドでデータを集計する方法について教えてください。
- データの集計結果を特定の形式で表示する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元のソースに手を加えると、次のような感じになります。 my %count; # 集計用ハッシュ変数 # 4番目のデータで集計 foreach $data (@datalist) { ($data1,$data2,$data3,$data4,$data5,$data6) = split(/,/,$data); $count{$data4}++; } # 集計結果を表示 foreach $key (sort keys %count) { print "$key = $count{$key}\n"; } ソースを見やすくするため全角スペースを入れていますので、コピーして使う際は半角スペースやタブに変換してください。
その他の回答 (1)
- leaz024
- ベストアンサー率75% (398/526)
このような場合は、4番目の値をキーにしたハッシュで、値をカウントします。 my %count; foreach (@data) { $count{ (split /,/)[3] }++; } foreach (sort keys %count) { print "$_ = $count{$_}\n"; }
補足
御回答有難う御座います。 私の書き方が悪いのか、御指示どおり試してみたのですが上手くいきません・・・(T_T) 下部に今まで書いていたソース(集計前)を書きますので、どの様に変更すればよいか、再度ご教授願えますでしょうか? foreach $data(@datalist){ ($data1,$data2,$data4,$data5,$data6)=split(/,/,$data); print"$data4"; } この様に単純に$data4を表示しておりました。この場合の変更手順を御教え下さいます様、御願い致します。
お礼
度々有難う御座います。 御教え頂いた手段にて問題は解決しました。 イマイチCGIが解らないのでご迷惑をおかけしましたm(__)m 説明もとてもわかりやすくホントに助かりました。