Hash problem



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" => \@gilligan,
"Skipper" => \@skipper,
"Professor" => \@professor,
};

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




Relevant Pages

  • Re: Upgrade from Access 2000 to 2003, MsgBox Error$ not working
    ... Are any of the checked references marked 'MISSING'? ... > Sub Form_Load ... > On Error GoTo Form_Unload_Err ...
    (microsoft.public.access.formscoding)
  • In Tools | References Missing
    ... The missing reference is "Microsoft ActiveX Data Objects ... In Tools | References Missing ... >> I had the following macro working in Excel 2000, ... >> Sub UpdateProgress ...
    (microsoft.public.excel.programming)
  • RE: Hash problem
    ... My hash is showing the address instead of the name and I'm not sure ... HASHis missing preserver ... my $all = shift; ... sub check_items_required { ...
    (perl.beginners)
  • Re: References to XLA files
    ... references to other libraries beside the one i'm checking. ... > project contains missing ones. ... > Private Sub Workbook_Open ... > Dim addInName As String ...
    (microsoft.public.excel.programming)
  • Printing an array within a hash
    ... I am trying to print the contents of the array from within the hash. ... my $all = shift; ... sub check_items_required { ... print "$who is missing $item\n"; ...
    (perl.beginners)