in reply to Re: bless array of hashes correct get method wrong
in thread bless array of hashes correct get method wrong
Thanks to all, for all the help (I have been learning perl for a couple of months - all prior work procedural, and like it). I did not realise I would need to bless slices of an array to. I don't want to move the sql statement outside of the package so it calls the bless function six times (correct me if I am wrong) but have it all contained (except the where part of the query) in the package. So I followed your code, changing
return bless \@objref, $class; to $self = [@objref]; return bless $self, $class; and changed the sub to sub get_desc() { my ($self, $idx) = @_ ; return $self->[$idx]{_description} ; }
calling code from
my $item = Item::Item->new( "10056" ); print $item->get_desc(0), "\n";
it works!. However when I try the next entry (the sql statement returns 6 rows)
my $item = Item::Item->new( "10056" ); print $item->get_desc(1), "\n";
I get: Use of uninitialized value in print at testitem.pl line 17. In my while statement I assign each row to the $objref[$i++] slice. The $self = [@objref] should have the whole array reference (handle ? - not sure) and so why does it not work? More reading to do...
.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: bless array of hashes correct get method wrong
by peterb (Novice) on Apr 20, 2007 at 18:32 UTC |