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

Corni_Cornflake
 2017-08-30 14:46
#187305 #187305
User since
2017-08-20
13 Artikel
BenutzerIn
[default_avatar]
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!

View full thread Uninitialised Value - Problem