Thread uninitialized value $_ in array
(8 answers)
Opened by Hartmannsgruber at 2013-08-28 16:17
$_ wird von Perl selbst belegt (z.B. in Schleifen). Man sollte da nicht selbst rumfuhrwerken, wenns keinen guten Grund dafür gibt.
PS. Ich würds so schreiben: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!perl use strict; use warnings; # das zu initialisieren macht wenig Sinn, schon garnicht mit "" wenns Zahlen sind. #Zudem unterdrückts vielleicht hilfreiche warnings bei Fehlern im Programm, wenn die Variablen nicht belegt werden. my ($anzahl, $summe, $durchschnitt); my @ar_zahl = (); print "Wie viele Zahlen möchten sie eingeben?: "; chomp ($anzahl = <STDIN>); foreach (1..$anzahl) { print "Bitte Zahl nummer $_ eingeben: "; chomp (my $input = <STDIN>); push @ar_zahl, $input; # push macht hier klarer, dass einfach angefügt wird und vermeidet Fehler beim Indexzählen. } $summe += $_ for @ar_zahl; # $summe += ist Kurzform für $summe = $summe + $durchschnitt = $summe / @ar_zahl; # / forciert hier sowas wie numerischen Kontext. Arrays in diesem (oder besser scalarkonext) liefern die Anzahl ihrer Elemente print "Anzahl der eingebenen Zahlen: $anzahl\n"; print "Sumer der eingebenen Zahlen: $summe\n"; print "Durchschnitt der eingebenen Zahlen: $durchschnitt\n"; 1 + 1 = 10
|