Thread Uninitialised Value - Problem
(8 answers)
Opened by Corni_Cornflake at 2017-08-30 14:46
Hallo,
ich habe eine Frage zu einer Fehlermeldung. Diese sieht nämlich so aus: Use of uninitialized value in string eq at 0-AnapherProbe.pl line 105, <DATEI_INT> line 1. Es geht dabei um folgendes Programm: (Vorab, nicht erschrecken, falls ich einfach nur etwas übersehen haben sollte, habe ich auch die ersten 84 Zeilen mit abkopiert, obwohl es hier nur um das Öffnen und Bearbeiten bestimmter Dateien geht- hier funktioniert auch alles) 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 #!/usr/bin/perl -w $normalText= "Der Weihnachtsmann kommt heim. Cäsar kam, sah und siegte. Menschen sind komplex. Luna mag Tiere, bringt Wasser mit und geht wieder nach Hause."; #Adjektive $adjektive= "adjektive.txt"; open(DATEI_ADJ, "<$adjektive"); foreach (<DATEI_ADJ>) { @adjektivliste= split(/\n/,$_); #adjektivliste in adjektive aufspalten foreach $listenelement (@adjektivliste) { #tags entfernen @adjektive= split(/\/.+/,$listenelement); foreach $adjektiv (@adjektive) { #endgültige adjektivliste durchgehen if ($adjektiv=~ m/.*?a".*?/g) { #sonderzeichen umwandeln ä $adjektiv=~ s/a"/ä/g; } if ($adjektiv=~ m/.*?o".*?/g) { #sonderzeichen umwandeln ö $adjektiv=~ s/o"/ö/g; } if ($adjektiv=~ m/.*?u".*?/g) { #sonderzeichen umwandeln ü $adjektiv=~ s/u"/ü/g; } if ($adjektiv=~ m/.*?sS.*?/g) { #sonderzeichen umwandeln ß $adjektiv=~ s/sS/ß/g; } push (@adj,$adjektiv); } } } #Artikel $artikel= "artikel.txt"; open(DATEI_ART, "<$artikel"); foreach (<DATEI_ART>) { @art= split(/,/,$_); #artikelliste in artikel aufspalten } #Adverben $adverben= "adverben.txt"; open(DATEI_AD, "<$adverben"); foreach (<DATEI_AD>) { @ad= split(/,/,$_); #adverbenliste in artikel aufspalten } foreach (@ad) { #bearbeiten adverben liste if ($_=~ m/.*?ss.*?/g) { $_=~ s/ss/ß/g; } } #Pronomen $pronomen= "pronomen.txt"; open(DATEI_PRO, "<$pronomen"); foreach (<DATEI_PRO>) { @pro= split(/,/,$_); #pronomenliste in artikel aufspalten } #Präpositionen $praposition= "präpositionen.txt"; open(DATEI_PRA, "<$praposition"); foreach (<DATEI_PRA>) { @pra= split(/,/,$_); #präpositionsliste in artikel aufspalten } #Konjunktionen $konjunktionen= "konjunktionen.txt"; open(DATEI_KON, "<$konjunktionen"); foreach (<DATEI_KON>) { @kon= split(/,/,$_); #konjunktionsliste in artikel aufspalten } #Interjektionen $interjektionen= "interjektionen.txt"; open(DATEI_INT, "<$interjektionen"); foreach (<DATEI_INT>) { @int= split(/,/,$_); #interjektionsliste in artikel aufspalten } push (@alles_ausser_verb,@adj,@art,@ad,@pro,@pra,@kon,@int); @anapher_0=(); @saetze_0_anapher= split(/(?<=[.!?])\s*/,$normalText); $counter=0; @anapher_0=(); foreach $satz (@saetze_0_anapher) { $flag = 0; @woerter= split(/ /,$satz); foreach $wort (@woerter) { if ($wort=~ m/[A-Z].*/) { push(@np,$wort); } foreach $artikel (@art) { if ($wort=~ m/\b$artikel\b/) { push(@np,$wort); } } foreach $alles_ausser_verb (@alles_ausser_verb) { if (($wort!~ m/($alles_ausser_verb|[A-Z].*)/) and ($satz=~ m/und $wort/g) and $flag == 0) { unless ($anapher_0[$counter] eq $satz) { push(@anapher_0,$satz); $counter++; } $flag = 1; } } } } foreach $anapher_satz (@anapher_0) { print "Es wurde eine 0-Anapher gefunden. Satz:\n$anapher_satz\nWählen Sie einen Ersatz aus folgenden Nomen:\n"; } Ich habe auch schon eine zweite Datei erstellt, zur Probe, in denen ich use strict verwendet habe und die Variablen dementsprechend definiert habe, jedoch kommt die Fehlermeldung auch hier noch. Kann mir jemand weiterhelfen? Vielen Dank! |