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 = {
                    "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


Reggie Johnson
TSM Admin


Reply via email to