Thread happy birthday mailer (18 answers)
Opened by mika at 2011-02-02 22:49

topeg
 2011-02-04 05:22
#145320 #145320
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
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: Wiki:perlreftut Wiki:perlref

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.)

View full thread happy birthday mailer