in reply to Perl parse text file using hash

If you insist on using a Hash of Hashes (HoH) so that you get "$info{}{}{} method", then this is one possibility. HoH is sometimes awkward because to print it, you need a loop for each level as shown.
use strict; use warnings; my %info; while (<DATA>) { chomp; my ($name,$fruit, $path) = split ' ',$_,3; # allow space in path n +ame(s) $info{$name}{$fruit}=$path; } foreach my $name (sort keys %info) { print "$name\n"; foreach my $fruit (sort keys %{$info{$name}} ) { print " $fruit \t$info{$name}{$fruit}\n"; } } =PRINTS: Albert apple /path/to/somewhere/a Dex jackfruit /path/to/some where/d Jack apple /path/to/somewhere/c pineapple /path/to/some where/b =cut __DATA__ Albert apple /path/to/somewhere/a Jack pineapple /path/to/some where/b Jack apple /path/to/somewhere/c Dex jackfruit /path/to/some where/d

Replies are listed 'Best First'.
Re^2: Perl parse text file using hash
by Fletch (Bishop) on Dec 21, 2022 at 11:43 UTC

    Or delegate the awkward and use YAML::XS or Cpanel::JSON::XS or Data::Dumper to show things (especially for a debugging context).

    Edit: Derp, extra n in panel fixed; thx pryrt and Anomalous.

    The cake is a lie.
    The cake is a lie.
    The cake is a lie.