Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: An Array Without and Index

by Neighbour (Friar)
on Aug 13, 2012 at 09:08 UTC ( #987077=note: print w/replies, xml ) Need Help??

in reply to An Array Without and Index

If your u2addr-table isn't extraordinary large, you could just fetch the whole thing in a hashref and loop through that:
my @results; my $hr_addresses = $dbh->selectall_hashref("SELECT addr, id FROM u2add +r", "addr"); if (!defined $hr_addresses) { die("Error executing query: " . $dbh->er +rstr); } foreach my $addr (@addr) { if (defined $hr_addresses->{$addr}) { push(@results, $hr_addresses->{$addr}) } else { print("Error, ID of address [$addr] not found\n"); } }
The use of selectall_hashref (or selectall_arrayref) relieves you of having to prepare, execute and fetch* everything yourself. All that's left is to use the results (in this case as an in-memory hashed lookup for all addresses in @addr). On top of that, calling finish isn't neccesary when you are fetching *all* the results, only when you want to abort fetching results partly through.
Besides that, if selectall_hashref (or selectall_arrayref) returns undef, then executing the query went wrong. This is a very nice thing to know. This is also different from the query executing correctly, but returning no results (which is slightly more difficult to check when using fetchrow_array).

Edit: Whoops, got the keyfield of the query wrong, fixed now.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987077]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (9)
As of 2018-03-23 19:24 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (296 votes). Check out past polls.