[gelöst] Summensubroutine behält vorherige Berechungswerte?!?
Hallo,
ich möchte mich gerade in Perl einarbeiten und arbeite einige Übungsaufgabe ab.
Ich hab jetzt z.B. eine Subroutine erstellt zur Berechnung von Summe aus beliebigen Eingabequellen.
Wenn ich z.B. die Summe aus einer Liste berechnen lasse und dann später nocheinmal eine Summe aus einer händischen Eingabe, dann ist der Summenwert der händischen Eingabe zwar richtig aber es wird der vorhergehene Listewert noch obendraufgeschlagen.
Die Subroutine sieht wie folgt aus.
Ich dachte wenn ich durch state $summe = 0 setze, das hier bei jedem Aufruf erstmal 0 gesetzt wird.
Leider klappt das nicht so ganz.
Hat wer ne kleinen Denkanstoß für mich?
Viele Grüße,
Heinz
Habs selbst gelöst.
state bringt ja Variablen dazu ihren Wert zwischen den Aufrufen zu behalten. Ohne das geht's.
Viele Grüße,
Heinz
Hallo,
ich möchte mich gerade in Perl einarbeiten und arbeite einige Übungsaufgabe ab.
Ich hab jetzt z.B. eine Subroutine erstellt zur Berechnung von Summe aus beliebigen Eingabequellen.
Wenn ich z.B. die Summe aus einer Liste berechnen lasse und dann später nocheinmal eine Summe aus einer händischen Eingabe, dann ist der Summenwert der händischen Eingabe zwar richtig aber es wird der vorhergehene Listewert noch obendraufgeschlagen.
Die Subroutine sieht wie folgt aus.
Code:
sub gesamt {
state $summe = 0;
foreach my $zahl (@_) {
$summe += $zahl;
}
return $summe;
}
Leider klappt das nicht so ganz.
Hat wer ne kleinen Denkanstoß für mich?
Viele Grüße,
Heinz
Ergänzung ()
Habs selbst gelöst.
state bringt ja Variablen dazu ihren Wert zwischen den Aufrufen zu behalten. Ohne das geht's.
Viele Grüße,
Heinz
Zuletzt bearbeitet: