> >> > I have created a module, and inside one of the Package methods, I
> >> have
> >> > the following code:
> >> >
> >> > $href = $getPlanInfo->fetchrow_hashref();
> >> > foreach my $key (keys %$href) {
> >> > print "$key : $href->{$key}\n";
> >> > $name = $key;
> >> > $self->{$name} = $href->{$key};
> >> > }
> >
> > So in the above you want to loop over the result set storing them to
> > the
> > object, this sounds like the perfect use of an array reference stored
> > to
> > the object. Something like:
> >
> > while (my $href = $getPlanInfo->fetchrow_hashref) {
> > push @{$self->{$name}}, $href;
> > }
> >
> > Now $self->{$name} contains a list, similar to what you mention with
> > the
> > indexes below, but let Perl handle that for you. Then you can loop
> > over
> > the list as with any array reference, or index into it similar to any
> > array.
> >
> > foreach my $element (@{$self->{$name}}) {
> > foreach my $key (keys %$element) {
> > print "$key: $element->{$name}\n";
> > }
> > }
>
> Wow! ...and I *almost* understand how it works! Admittedly, I'm just
> begun familiarizing myself with references the last few days, but this
> looks so far like what I need. I am going to research how, and why
> this works, but am I correct with this?:
>
perldoc perlreftut
perldoc perlref
perldoc perllol
perldoc perldsc
Are excellent resources. If you are into the whole book thing then I
would highly suggest the Learning PORM book from O'Reilly[1].
> (based on your code above, assuming 2 rows in db for user)
>
> @{$self->{$name}}[0] == %hash (name & val) # from db row 1
> @{$self->{$name}}[1] == %hash2 (name & val) # from db row 2
>
I think you are thinking about them correctly....
$self->{$name} contains an array reference as its value. So the above
slices into that array reference to retreive a particular indexes value,
which happens to be a hash reference. To make things easier and
generally better looking, Perl provides a simpler access syntax, so for
the first element of the array above you would write,
$self->{$name}->[0]
And the second becomes,
$self->{$name}->[1],
So then to access into the next level, aka to get specific information
from a record you could issue,
$self->{$name}->[0]->{'license_number'};
(Obviously I am making up the names of the fields, but hopefully you get
the point.) The listed docs should provide much more thorough,
accurate, and readable examples/descriptions.
> I truly was never aware the true flexibility of Perl before. Wow...if
> I had of researched this stuff before...I don't want to even imagine
> the time I would of saved myself ;o)
>
> Steve
Yep, welcome to a whole new world. References often take some time to
"just get", but once you just get them, they make things significantly
easier.
<snip>
http://danconia.org
[1] http://www.oreilly.com/catalog/lrnperlorm/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>