my %HoA; while (<>) { chomp; my( $category, $item ) = split /\t/, $_, 2; push @{$HoA{$category}}, $item; } for my category ( sort keys %HoA ) { local $" = ", "; print "$category: @{$HoA{$category}}\n"; }