use strict; use Data::Dumper; open (FOOD, "<", "food.txt") or die "Can't open food.txt: $^E"; my %categories; while () { chomp; my ($category, $item) = split(/\s+/); push(@{$categories{$category}}, $item); } print ">$_<\n",Dumper($categories{$_}) for keys %categories; close FOOD;