Hallo,
$visits_thismonth wird ja erst nach dieser Zeile berechnet, somit muss ich im Nachhinein den Wert in die Variable schreiben, und genau das ist mein Problem.
Ähm, wenn $visits_thismonth erst nach der Ausgabe errechnet wird, ist es schon zu spät. Du hast im Ausgangsposting etwas davon geschrieben, dass du Referenzen bereits erfolgreich mit Funktionen (Subroutinen) einsetzt, aber auch da wird das ungefähr so ablaufen:
my $wasauchimmer = 0;
hole_werte($wasauchimmer);
....
print 'das steht in $wasauchimmer:'. $wasauchimmer ."\n";
....
sub hole_werte
{
my $ref_auf_wasauchimmer = shift;
$$ref_auf_wasauchimmer = 42;
}
Dabei wird aber, und das ist entscheidend, die Funktion aufgerufen _bevor_ die Ausgabe erfolgt. Lediglich der Code der Funktion ist nach der Ausgabe, ausgeführt wird er aber im Programmablauf vorher.
Egal, wie Du es anstellst, Du mußt den Ausgabewert eben vor der Ausgabe berechnen.
Außerdem dürfe beim print-Aufruf die Referenzierung falsch sein, da hier ja der Wert und nicht die Referenz der Variable ausgegeben werden soll.
Und noch etwas, Referenzen sind zwar eine tolle Sache, aber in meinem obigen Beispiel würde ich es eher mit einem Rückgabewert realisieren. Für mich machen Refernenz eher dann einen Sinn, wenn ich bereits eine komplexere Datenstruktur habe, und die nicht per Übergabeliste über geben will, oder wenn ich einer Funktion mehrere Arrays übergeben will, ohne deren Struktur ztu verlieren. Aber bei einfachen Variablen und wenigen Werten ziehe ich doch die 'altbackene' Variante mit Übergabe- und Rückgabeliste vor. Aber das könnte eine Geschmacksfrage sein und andere könnten es anders sehen.
Grüße
Klaus