Thread happy birthday mailer
(18 answers)
Opened by mika at 2011-02-02 22:49 2011-02-03T17:37:28 mika Du würfelst drei verschiedene Variablen durcheinander. %config ist ein Hash, in dem die meisten deiner Einstellungen sind. Der wird in Zeile 44 deines Codes gefüllt. $config ist eine Referenz auf einen anonymen Hash, in dem nur eine Einstellung drin ist, und zwar "db". Der wird in Zeile 46 angelegt und gefüllt. @config ist ein Array, dass du jetzt neu in deiner sub angelegt hast. Zeile 46 ist eigentlich schon falshc. Das funktioniert nur auf Grund von Autovivifikation der Variablen $config bei der Zuweisung. Eigentlich möchtest du an dieser Stelle wahrscheinlich Code (perl): (dl
)
$config{db} = load_db(\%config); Vielleicht lohnt ein Blick in perlreftut, perldata und (fortgeschrittener) perldsc. Quote Klar, weil du da eine neue Variable @config anlegst, die nirgends genutzt wird. Im folgenden wird in der sub auf die globalen Variablen $config und %config zugegriffen! In topegs Code wird lokal eine neue Referenz $config angelegt. Die verweist aber beim Aufruf auf die Variable %config im Hauptprogramm, und enthält daher nirgendwo einen Key "db", deshalb gibt's mit seinem Code und deinem $config->{db} eine Fehlermeldung. Jetzt alles klar oder endgültig konfus? ;-) PS: Und bitte nicht "commemorative". Das hat meinem Sprachgefühl her was mit Gedenken, Feierlichkeiten, Zeremonien und so zu tun. "Reminder e-mail" passt hier besser. Last edited: 2011-02-03 22:36:53 +0100 (CET) |