Thread unblessed reference
(4 answers)
Opened by silver345 at 2011-06-07 08:44
Ich muß für meinen Job ein Script schreiben, um XML Files in eine MySQL-Datenbank zu übertragen. Dazu nutze ich unter anderem prepared statements.
Code: (dl
)
1 my $SqlTools = "SELECT `value` FROM `Tools` WHERE `property`=?"; Wenn diese Statements (die SELECT-Anweisungen, also record sets, enthalten), nicht am Ende des Programms geschlossen werden, beschwert sich Perl. Zu recht. Also habe ich eine Routine geschrieben, die diese RecordSets schließt. Da ich aber noch bei der Entwicklung bin und ich die Sache schrittweise aufbaue, steigt die Zahl der zu schließenden RS und Murphy ist überall. Deshalb dachte ich in meinem Altersleichtsinn, daß ich diese Variablen per Referenz an ein Array übergebe und dann in o. g. Routine schließe. Code: (dl
)
1 sub closeDatabase { Das führt aber zur Fehlermeldung: Can't call method "finish" on unblessed reference at <script_name> line <number>. Nutze ich hingegen folgendes Szenario: Code: (dl
)
1 my @toClose = (); gibt es zumindest keine Fehlermeldung. Jetzt bin ich mir aber nicht wirklich sicher, ob wirklich 1. die RS geschlossen werden und 2. eval nicht als guter Geist funktioniert und die Fehlermeldungen unterdrückt. Lieber wäre mir jedoch der Aufruf über das Array mit den Variablen-Refenrenzen. Ist wohl auch irgendwie professioneller (wenn ich es denn könnte ;o) ). Kann mir da jemand einen Tipp geben? Last edited: 2011-06-07 08:51:28 +0200 (CEST) |