Thread Uninitialised Value - Problem (8 answers)
Opened by Corni_Cornflake at 2017-08-30 14:46

Linuxer
 2017-08-30 15:36
#187307 #187307
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Naja,

der "Fehler" ist nur eine Warnung.

Du hast im gezeigten Code nur einen Vergleich mit eq; Du kriegst sogar die Zeilenummer genannt.

Also überlegen wir mal:

Code (perl): (dl )
1
2
3
4
$counter = 0;
$anapher_0 = ();
...
unless ($anapher_0[$counter] eq $satz) {


Im ersten Durchlauf ist $counter = 0 und es wird $anapher_0[0] mit $satz vergleichen.
@anapher_0 ist aber zu dem Zeitpunkt noch ein leeres Array; also ist $anapher_0[0] nicht definiert.
Das sagt Dir die Meldung.

Entweder belegst Du $anapher_0 mit Werten oder einem Startwert, sodass $anapher_0[0] bereits definiert ist (falls das geht. Ich habe den Code nur überflogen; keine Ahnung, was der Code treibt).
Oder Du prüfst vor dem Vergleich, ob $anapher_0[0] definiert ist:

Code (perl): (dl )
if ( defined $anapher_0[$counter] && $anapher_0[$counter] ne $satz) {

(Code ungetestet)

Das setzt allerdings voraus, dass undef kein valider Wert des Arrays sein soll.
Last edited: 2017-08-30 15:38:07 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Uninitialised Value - Problem