いつも忘れるのでメモ。
%x2y = (); # 読み込み while(<>) { $_ =~ s/[\r\n]//g; # 改行除去 @c = split / /; # スペースで分割 push(@{$x2y{$c[0]}}, $c[1]); # キーが$c[0]の配列に$c[1]を追加 } # 表示 while(($k,$v)=each(%x2y)) { print $k." --> ".join(", ",@$v)."\n"; }
このスクリプトに標準入力から
a a
b b
b c
c d
c e
c f
を入力すると、
c --> d, e, f
a --> a
b --> b, c
が得られる。