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

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to