· Wildcards are expanded to lower cased identifiers. This might confuse some people, but it was easier to implement. The warning in DBI to never trust the case of returned column names should be read more often. If you need to rely on identifiers, always use "sth->{NAME_lc}" or "sth->{NAME_uc}" - never rely on "sth->{NAME}": $dbh->{FetchHashKeyName} = "NAME_lc"; $sth = $dbh->prepare ("SELECT FOO, BAR, ID, NAME, BAZ FROM TABLE"); $sth->execute; $hash_ref = $sth->fetchall_hashref ("id"); print "Name for id 42 is $hash_ref->{42}->{name}\n"; See "FetchHashKeyName" in DBI for more information.