außerhalb der subroutine ergibt wert 0?

murphs_law

Grünschnabel
hab hier ne subroutine.
sub SCHNITT

{
foreach my $tmp (@durch) {
$gesamt = $gesamt + $tmp;

}
$schnitt = $gesamt / $scount;
$rounded=sprintf("%.2f",$schnitt);
}

..möchte den schnitt einmal für ein array berechnen und dann wieder fürn anderes. deswegen das da unten, deswegen heißen die dinger doch variablen oder?
@durch = @durch_get;
$gesamt = $gesamt_get;;
$schnitt = $schnittg_adk;
$scount = $counterg_adk;
&SCHNITT;

hab das zweimal, wenn ichs in der sub ausgebe ists richtig. außerhalb ists aber null. die vars sind alle global. verstanden was ich meine? was kann ich da machen?
 
Hi!

Ich muß gestehen, ich verstehe Deine Frage nicht wirklich.
Wie wäre es denn aber, wenn Du die Variablen übergibst bzw. returnierst?:
Code:
sub schnitt {

my @zahlen = @_;
my $summe;
foreach (@zahlen) {
     $summe+= $_;
}
my $anzahl = @zahlen;
return ($summe/$anzahl);
}

$schnitt = schnitt(@ein_array);

Vielleicht aber auch ein "Thema verfehlt" :)
 

Neue Beiträge

Zurück