Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Perl parse text file using hash

by Marshall (Canon)
on Dec 20, 2022 at 16:46 UTC ( [id://11148998]=note: print w/replies, xml ) Need Help??


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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11148998]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2024-04-20 07:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found