Pathologically Eclectic Rubbish Lister PerlMonks

Issues with Hashes

by jedikaiti (Hermit)
 on Mar 23, 2010 at 17:22 UTC Need Help??
jedikaiti has asked for the wisdom of the Perl Monks concerning the following question:

So I have this hash:

my %Verbs = (
"arm" => {
description =>  "
A prerequisite command for a potentially hazardous
command.
",
discrete =>  1,
},
"close" => {
description =>  "
Mechanically close a device controlled by the command
element.  \\emph{close} works in conjunction with the
\\emph{open} verb.
",
discrete =>  1,
},
"disable" => {
description =>  "
Deactivate a capability or function.  \\emph{disable}
works in conjunction with the \\emph{enable} verb.
",
discrete =>  1,
},
"dump" => {
description =>  "
Copy a specific data buffer of the command element
to telemetry.
",
discrete =>  0,
},
"enable" => {
description =>  "
Activate a capability or function.  \\emph{enable}
works in conjunction with the \\emph{disable} verb.
",
discrete =>  1,
},
);
[download]

And I want to iterate through it, in order, to get the key, description, and discrete values. This is driving me nuts. I looked at this post about hashes of hashes in Q&A, but it's just not working, so I decided to dial it back and go one step at a time.

First step: iterating through and getting the keys:

foreach my $cmd (keys %Verbs){ print("Command:$cmd \n");
}
[download]

This works, gets all the keys, but not in order.

So my questions, dear Monks, are as follows:
1) How do I get it to iterate in order? (i.e., "arm", "close", "disable", "dump", "enable")
2) Once I get that, how do I get the discrete and description values for each?

Thanks!

Kaiti

Replies are listed 'Best First'.
Re: Issues with Hashes
by ssandv (Hermit) on Mar 23, 2010 at 17:38 UTC

sort keys is the answer to the first part. sort is pretty useful for getting a list in order, and pretty powerful in that it lets you use your own sort order if you want.

As for the second part, $Verbs{$cmd} will be a hashref (the value associated with the key $cmd ), and you can then look at$Verbs{\$cmd}{discrete} to see the value there.

Thanks!
Re: Issues with Hashes
by jedikaiti (Hermit) on Mar 23, 2010 at 17:33 UTC

Many thanks to wfsp, who pointed out in the CB that I can sort the keys. That answers question #1!

Kaiti

Create A New User
Node Status?
node history
Node Type: perlquestion [id://830342]
Approved by Corion
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2018-01-17 00:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How did you see in the new year?

Results (194 votes). Check out past polls.

Notices?