Inhaltsverzeichnis:
- Ein Semikolon vergessen
- Vergessen eines Anführungszeichens
- Zu viele oder zu wenige Klammern eingeben
Video: Englisch Lernen ☆ Unterschied zwischen "so", "very" und "a lot" / häufige Fehler 2024
Das Eingeben eines oder mehrerer Tippfehler während des Schreibens eines Perl-Programms ist nicht ungewöhnlich. Wenn Sie jedoch versuchen, ein Programm auszuführen, das einen Texteintrag enthält, wird Perl normalerweise verwirrt und teilt Ihnen dies mit, indem es einen Fehler meldet. Die natürliche Reaktion für die meisten Leute, selbst für diejenigen mit jahrelanger Programmiererfahrung, ist, sich Sorgen zu machen oder wütend zu werden oder beides, wenn eine Fehlermeldung erscheint.
Keine Panik. Tief durchatmen. Atme noch einmal tief ein. Im Ernst, Sie können nicht an die Wurzel des Problems gelangen, wenn Sie sich alle verkrampfen. Egal, wie viele Jahre Sie programmieren, Sie finden immer Fehler im Code, den Sie geschrieben haben.
Nun, da Sie (hoffentlich!) Etwas ruhiger sind, können Sie die Tatsache schätzen, dass Perl mehr hilfreiche Fehlermeldungen als fast jede andere Programmiersprache hat. Die Nachrichten sind nicht immer auf dem Geld richtig, aber sie können Sie nahe an der Stelle bringen, wo das Problem mit der minimalen Suche Ihrerseits liegt.
Perl hat unzählige Fehlermeldungen, aber einige treten definitiv mehr auf als andere, da es einige Tippfehler gibt, die jeder zu machen scheint. Die folgenden Fehler resultieren aus geringfügigen Texteintragungen, die Sie leicht vermeiden können.
Ein Semikolon vergessen
Die wahrscheinlichste Fehlermeldung, die Sie beim Programmieren in Perl sehen, sieht ungefähr so aus:
# Syntaxfehler, nahe "open"
File 'counter1. pl '; Zeile 10
# Ausführung wegen Übersetzungsfehlern abgebrochen.
Sie können sich die Zeile 10 ansehen und anschauen, die mit der offenen Anweisung, und Sie werden nichts falsch mit ihr sehen. Der Trick besteht darin, die Anweisung, die vor kommt, auf die offene Anweisung zu untersuchen und zu sehen, ob sie mit einem Semikolon endet. (Perl weiß, dass eine Anweisung nur endet, wenn ein Semikolon gefunden wird.) In diesem Fall wird der Fehler durch ein fehlendes Semikolon am Ende von Zeile 7 des Programms verursacht:
$ TheFile = "Beispiel. txt "
Vergessen eines Anführungszeichens
Die folgende Art von Fehlermeldung kann äußerst frustrierend sein, wenn Sie keine schnelle Lösung kennen:
# Es wurde ein nacktes Wort gefunden, bei dem der Operator erwartet wurde, nahe
#" Öffnen Sie (INFILE, $ TheFile) oder sterben Sie "The"
# (könnte eine durchlaufende mehrzeilige "Zeichenkette sein, die auf
# Zeile 7 beginnt)
File 'counter1. pl '; Zeile 10
Dieser Fehler ähnelt dem Vergessen eines Semikolons. Stattdessen ist es ein Anführungszeichen, das versehentlich weggelassen wurde:
$ TheFile = "sample. txt;
In diesem Fall hat Perl gut abgeschätzt, was falsch ist, was darauf hindeutet, dass ein durchgehender String mit mehreren Zeilen auf Zeile 7 das Problem ist, was genau richtig ist.
Zu viele oder zu wenige Klammern eingeben
Wenn Sie viele Klammern in einem Programm öffnen und schließen, ist es leicht, versehentlich eine zusätzliche Klammer hinzuzufügen. Wenn dies der Fall ist, sehen Sie möglicherweise eine Nachricht von Perl, die etwa so aussieht:
# Syntaxfehler, in der Nähe von ") eq"
Datei 'counter1. pl '; Zeile 38
# Syntaxfehler, in der Nähe von "}"
Datei 'counter1. pl '; Zeile 42
Hier kann Perl nicht genau bestimmen, wo der Fehler genau ist, aber er hat es tatsächlich bei der ersten Schätzung richtig gemacht: Zeile 38 enthält eine zusätzliche rechte Klammer:
if (substr ($ TheLine, $ CharPos, 1)) eq "")
Wenn in einem Perl-Programm zu wenige Klammern vorhanden sind, können schwer zu findende Probleme auftreten:
# Konstantes Element kann nicht als linkes Argument von implizit ->,
# verwendet werden. in der Nähe von "1}"
Datei 'counter1. pl '; Zeile 39
# Skalar gefunden, wo der Operator erwartet, in der Nähe von "$ CharPos"
Datei 'counter1. pl '; Zeile 40
# (Fehlendes Semikolon in der vorherigen Zeile?)
# Syntaxfehler in der Nähe von "$ CharPos"
Datei 'counter1. pl '; Linie 40
Yarp! All dies wurde erzeugt, weil die letzte Klammer in Zeile 38 fehlt:
if (substr ($ TheLine, $ CharPos, 1) eq ""
Hier eine weitere gute Lektion bei der Suche nach Tippfehlern: Start wo Perl sagt Es wurde ein Fehler gefunden Wenn Sie den Fehler dort nicht finden, gehen Sie ein oder zwei Zeilen und sehen Sie, ob das Problem früher aufgetreten ist.
Ein abschließender Ratschlag: Vertrauen Sie Perl, um die einfachen Tippfehler für Sie zu finden (wo kann), und denken Sie daran, dass es Ihnen alle Hilfe gibt, die es kann, was mehr ist, als Sie für viele Programmiersprachen sagen können.