Perl Summensubroutine behält vorherige Berechungswerte?!?

HeinzM

Ensign
Dabei seit
Apr. 2004
Beiträge
166
[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.
Code:
sub gesamt {
	state $summe = 0;
	foreach my $zahl (@_) {
		$summe += $zahl;
	}
	return $summe;
}
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
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:
Top