% pelrdoc DBI [snip] `fetchrow_hashref' $hash_ref = $sth->fetchrow_hashref; $hash_ref = $sth->fetchrow_hashref($name); An alternative to `fetchrow_arrayref'. Fetches the next row of data and returns it as a reference to a hash containing field name and field value pairs. Null fields are returned as `undef' values in the hash. If there are no more rows or if an error occurs, then `fetchrow_hashref' returns an `undef'. You should check `$sth-'>`err' afterwards (or use the `RaiseError' attribute) to discover if the `undef' returned was due to an error. The optional `$name' parameter specifies the name of the statement handle attribute. For historical reasons it defaults to "`NAME'", however using either "`NAME_lc'" or "`NAME_uc'" is recomended for portability. The keys of the hash are the same names returned by `$sth-'>`{$name}'. If more than one field has the same name, there will only be one entry in the returned hash for those fields. Because of the extra work `fetchrow_hashref' and Perl have to perform, it is not as efficient as `fetchrow_arrayref' or `fetchrow_array'. Currently, a new hash reference is returned for each row. This will change in the future to return the same hash ref each time, so don't rely on the current behaviour.