Thread happy birthday mailer
(18 answers)
Opened by mika at 2011-02-02 22:49
Du kommst mit den Referenzen durcheinander:
Zeile 46: $config{db}=load_db(\%config); kein "my" und keine Referenz "->" es soll im Hash "%config" unter dem Namen "db" eine Array Referenz eingefügt werden (diese kommt von load_db ). Zeile 48: for my $row (@{$config{db}}) keine Referenz "->" es soll auf "%config" zugegriffen werden Zeile 84: open my $fh, "<:encoding(utf8)", $config->{db_file} or die "$config->{db_file}: $!"; hier ist "$config" eine Referenz Zeile 93: my $config=shift; keine Array. "$config" ist eine Referenz auf den Hash "%config" Zeile 102: print "\t$to\n" if ($config->{debug}>1); "$config" ist Referenz Zeile 104: From: $config->{from} "$config" ist hier Referenz Zeile 122: print $mail if ($config->{debug}>2); "$config" ist Referenz Ließ dir mal durch die Dokus durch: ![]() ![]() Es war ungünstig von mir den Hash "%config" und die Hashrefenz "$config" gleich zu benennen. Da "%config" "global" ist kann man in jeder Funktion darauf zugreifen. Man sollte so was aber, wenn möglich, vermeiden, da es bei größeren Programmen eicht zu Verwirrungen und schwer nachvollziehbaren Fehlern führen kann (irgend eine Funktion könnte absichtlich oder unabsichtlich Werte in globalen Variablen ändern und man weiß nicht welche es war und wo es passiert ist.) |