Hier ist ein Codeschnipsel aus einer Sqlite-Datenbankanwendung, an der ich gerade arbeite:
my $query = "select * from pins";
my $sth = $dbh->prepare($query) or die "Couldn't prep: $DBI::errstr";
$sth->execute or die "Exec problem: $DBI::errstr";
my $result = $sth->fetchall_arrayref();
my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
foreach my $row (@$res) {
# ... do some row-specific things
foreach my $cell (@$row) {
# ... do some cell-specific things
}
}
Die Abfrage funktioniert einwandfrei und liefert tatsächlich die richtigen Ergebnisse. Doch aus irgendeinem Grund, diese Zeile,
my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
Scheitert. {NAME} gibt nie die Arrayref zurück, die ich erwarten würde. Wenn ich die die-Klausel herausnehmen, läuft es gut (werfen die erwartete "mit nicht initialisierten Werte" Warnung, wo immer ich $names, natürlich verwenden).
Gibt es einen offensichtlichen Grund, den ich übersehe, dass {NAME} nicht ausgelöst wurde, da die Abfrage problemlos funktionierte?
Danke!