Markham, Richard wrote:
> Kester, I used your suggestions. The following code:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> #! /usr/local/bin/perl

What on earth do you have against a 'use strict;' placed right here in your code ?

Having one would have produced:
Global symbol "%people" requires explicit package name at ...
Global symbol "%people" requires explicit package name at ...
Global symbol "%people" requires explicit package name at ...

Which would have taken you to the 3 changes below to correct
your de-referencing of $people :

> use Data::Dumper;
> my @PERSON;
> 
> push @PERSON,
>   new_person(name   => "JOE",
>              nums   => [ "25","30","1" ],
>              weight => "150"),
>   new_person(name   => "DAVE",
>              nums   => [ "29","52","46" ],
>              weight => "190"),
>   new_person(name   => "CAROL",
>              nums   => [ "22","32" ],
>              weight => '120');
> 
> 
> if (grep { $_->{name} eq "DAVE" } @PERSON) {
>  print "DAVE exists\n";
> }
> else {
>  print "DAVE does not exist\n";
> }
> 
> foreach my $people (@PERSON) {
>     print "52 exists" if grep { $_ eq '52' } @{$people{nums}};

        print "52 exists\n" if grep { $_ eq '52' } @{$people->{nums}};

>     print "Im looping.\n";
>     print join (' ',@{$people{nums}});

        print join (' ', @{$people->{nums}}), "\n";

>     print @{$people{nums}};

        print @{$people->{nums}}, "\n";

> }
> 
> print Dumper(@PERSON);
> 
> sub new_person {
>   my %p = @_;
>   my %r_person;
>   my @fields = qw/name nums weight/;
>   @r_person{ @fields } = @p{ @fields };
>   return \ %r_person;
> }
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> produces the following output:
> 
> DAVE exists
> Im looping.
> Im looping.
> Im looping.
> $VAR1 = {
>           'weight' => '150',
>           'name' => 'JOE',
>           'nums' => [
>                       '25',
>                       '30',
>                       '1'
>                     ]
>         };
> $VAR2 = {
>           'weight' => '190',
>           'name' => 'DAVE',
>           'nums' => [
>                       '29',
>                       '52',
>                       '46'
>                     ]
>         };
> $VAR3 = {
>           'weight' => '120',
>           'name' => 'CAROL',
>           'nums' => [
>                       '22',
>                       '32'
>                     ]
>         };
> 
> Im still stuck on why neither logic against the values or trying to print
> the array values is working.  I'm reading over perltoot as we speak,
> but I'm curious if OO is going to be required to solve this baseline
> issue that I have here. Sorry to drag this out so long, but this seems
> like it should work.




-- 
  ,-/-  __      _  _         $Bill Luebkert    Mailto:[EMAIL PROTECTED]
 (_/   /  )    // //       DBE Collectibles    Mailto:[EMAIL PROTECTED]
  / ) /--<  o // //      Castle of Medieval Myth & Magic http://www.todbe.com/
-/-' /___/_<_</_</_    http://dbecoll.tripod.com/ (Free site for Perl/Lakers)


_______________________________________________
Perl-Unix-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to