in reply to Too much Hash??

What would you want the output to be? %data is indexed by $Item and each value will be a reference to a hash indexed by $SubOption. My guess is you want your printout loop to be something along these lines:
foreach my $k (keys %data){ print "$k:\n"; print " $_\n" for (values %{$data{$k}}); }

The PerlMonk tr/// Advocate