• ベストアンサー

一部が重複しているデータのマージ

こんにちは。 どうやって書いたらいいのかわからなくて質問しました。 皆様のお知恵を拝借できませんでしょうか。 以下のようなデータがあります。 1行目:100円 りんご 2行目:100円 みかん 3行目:100円 バナナ これを以下のようにマージして一行で出力したいのです。 100円 りんご,みかん,ばなな どうかよろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

例えばこんな感じとか? use strict; my %data; while (<STDIN>) { my ($key, $value); $_ =~ s/[\r\n]//; $key = $value = $_; $key =~ s/([^ ]+)\s(.*)/\1/; $value =~ s/([^ ]+)\s(.*)/\2/; push(@{$data{$key}}, $value); } while(my ($key, $value) = each %data) { print "$key "; foreach (@{$value}) { print "$_,"; } print "\n"; }

hachibunbunbun
質問者

お礼

できました! ありがとうございます。勉強になりました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

入力なんか無視して 「100円 りんご,みかん,ばなな」 とだけ出せば十分では?

関連するQ&A