-----Original Message-----
From: D. Bolliger [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 28, 2006 4:32 PM
To: [email protected]
Subject: Re: Hash problem
Johnson, Reginald (GTI) am Donnerstag, 28. September 2006 21:58:
> I am doing an example from Perl Objects, References & modules. I
suspect
> many of you already use this book as a reference.
> My hash is showing the address instead of the name and I'm not sure
> why. Here is my output.
>
> this is person=>HASH(0x20040014)
> this is who=>HASH(0x20040014)
> HASH(0x20040014) is missing preserver
> HASH(0x20040014) is missing sunscreen
> HASH(0x20040014) is missing water_bottle
> HASH(0x20040014) is missing jacket
>
> Here is the code
> #!/usr/bin/perl
> use strict;
>
> my @gilligan = qw(red_shirt hat lucky_socks water_bottle);
> my @skipper = qw ( blue_shirt hat preserver sunscreen);
> my @professor = qw(sunscreen water_bottle slide_rule batteries
> radio);
>
> my %all = {
usage of '()' instead of '{}' would probably help :-)
The hash as defined in your line has one key with a stringified address,
and
the value is undef.
Check this out with
use Data::Dumper;
warn Data::Dumper::Dumper (\%all);
> "Gilligan" => [EMAIL PROTECTED],
> "Skipper" => [EMAIL PROTECTED],
> "Professor" => [EMAIL PROTECTED],
> };
>
> check_items_for_all(\%all);
>
> sub check_items_for_all{
> my $all = shift;
> for my $person(sort keys %$all) {
> print "this is person=>$person\n";
> check_items_required($person,
$all->{$person});
> } #end for
> } #end check_items_for_all
>
> sub check_items_required {
> my $who = shift;
> print "this is who=>$who\n";
> my $items = shift;
> my @required = qw(preserver sunscreen water_bottle
> jacket);
>
> for my $item (@required) {
> unless (grep $item eq $_, @$items) { #if
> statement is false
> print "$who is missing $item\n";
> } #end unless
> } #end for
> } #end sub
Hope this helps!
Dani
Yes this did the trick. Thanks to all of you who responded. I guess it
is a good practice to use data::dumper when you are developing programs.
When I search CPAN in modules I see a quick snopsis of data dumper. Is
there an area in CPAN that has a more verbose listing of modules?
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>