Πίνακας περιεχομένων:
- Πιθανότατα το πιο συνηθισμένο μήνυμα σφάλματος που βλέπετε όταν ο προγραμματισμός στο Perl μοιάζει με αυτό:
- Το ακόλουθο είδος μηνύματος σφάλματος μπορεί να είναι εξαιρετικά απογοητευτικό αν δεν γνωρίζετε μια γρήγορη επιδιόρθωση:
- # σφάλμα σύνταξης, κοντά ") eq"
Βίντεο: Μοσκοβισί: Κοινή βούληση για την αποφυγή νέου δράματος 2024
Η εισαγωγή ενός τυπογραφικού λάθους ή δύο κατά τη διάρκεια της σύνταξης ενός προγράμματος Perl δεν είναι ασυνήθιστο. Αλλά όταν επιχειρείτε να εκτελέσετε ένα πρόγραμμα που περιέχει μια ολίσθηση εισαγωγής κειμένου, ο Perl συνήθως συγχέεται και σας το λέει αναφέροντας ένα λάθος. Η φυσική αντίδραση για τους περισσότερους ανθρώπους, ακόμη και εκείνων με χρόνια εμπειρίας στον προγραμματισμό, είναι να ανησυχούν ή να θυμώνουν ή και οι δύο όταν εμφανιστεί ένα μήνυμα σφάλματος.
Μην πανικοβληθείτε. Πάρε μια βαθιά ανάσα. Πάρτε μια άλλη αργή, βαθιά αναπνοή. Σοβαρά, δεν μπορείτε να φτάσετε στη ρίζα του προβλήματος εάν είστε όλοι έντονοι και ενοχλημένοι. Ανεξάρτητα από το πόσα χρόνια προγραμματίζετε, καταλήγετε πάντοτε σε κάποια λάθη στον κώδικα που γράφετε.
Το Perl έχει μυριάδες μηνύματα σφάλματος, αλλά μερικά σίγουρα εμφανίζονται περισσότερο από άλλα λόγω κάποιων κοινών τύπων που όλοι φαίνεται να κάνουν. Τα ακόλουθα σφάλματα προκύπτουν από δευτερεύοντες παρεμβάσεις εισαγωγής κειμένου που μπορείτε εύκολα να αποφύγετε.Πιθανότατα το πιο συνηθισμένο μήνυμα σφάλματος που βλέπετε όταν ο προγραμματισμός στο Perl μοιάζει με αυτό:
# σφάλμα σύνταξης, κοντά στο "ανοικτό"
Αρχείο 'counter1. pl '; Γραμμή 10
# Η εκτέλεση αποκόπηκε λόγω σφαλμάτων κατά τη συμπλήρωση.
Μπορείτε να κοιτάξετε και να δείτε τη Γραμμή 10, αυτή με την ανοικτή δήλωση, και δεν θα δείτε τίποτα λάθος με αυτό. Το κόλπο εδώ είναι να εξετάσουμε τη δήλωση που έρχεται
πριν από την την ανοικτή δήλωση και να δούμε αν τελειώνει με ένα ερωτηματικό. (Το Perl ξέρει ότι μια δήλωση τελειώνει μόνο όταν συναντά ένα ερωτηματικό.) Σε αυτήν την περίπτωση, το σφάλμα προκαλείται από ένα κενό σημείο στο τέλος της Γραμμής 7 του προγράμματος:
Ξεχνώντας την τιμή
Το ακόλουθο είδος μηνύματος σφάλματος μπορεί να είναι εξαιρετικά απογοητευτικό αν δεν γνωρίζετε μια γρήγορη επιδιόρθωση:
Ανοίξτε (INFILE, $ TheFile) ή πεθαίνετε "The"
# (Μπορεί να είναι μια διαφυγόντα γραμμή πολλαπλών γραμμών "ξεκινώντας από
# γραμμή 7)
Αρχείο 'counter1. pl '; Γραμμή 10
Αυτό το σφάλμα είναι παρόμοιο με το να ξεχνάμε ένα ερωτηματικό. Αντίθετα, είναι ένα εισαγωγικό που παραλείπεται τυχαία:
$ TheFile = "δείγμα. κείμενο;
Στην περίπτωση αυτή, ο Perl έκανε μια καλή δουλειά να μαντέψει τι είναι λάθος, υποδηλώνοντας ότι ένα σπάσιμο πολλαπλών γραμμών "στη γραμμή 7 είναι το πρόβλημα, το οποίο είναι ακριβώς σωστό.
Εισάγοντας μια παρένθεση πάρα πολύ ή πολύ λίγα
Όταν έχετε πολλά ανοίγματα και κλειστά παρενθέσεις σε ένα πρόγραμμα, είναι εύκολο να γλιστρήσετε ένα πρόσθετο τυχαία. Αν συμβαίνει αυτό, μπορεί να δείτε ένα μήνυμα από το Perl που διαβάζει κάτι τέτοιο:
# σφάλμα σύνταξης, κοντά ") eq"
Αρχείο 'counter1. pl '; Γραμμή 38
# σφάλμα σύνταξης, κοντά "}"
Αρχείο 'counter1. pl '; Γραμμή 42
Εδώ, ο Perl δεν μπορεί να προσδιορίσει πού ακριβώς είναι το σφάλμα, αλλά στην πραγματικότητα πήρε την πρώτη εικασία: Η γραμμή 38 περιέχει μια επιπλέον δεξιά παρένθεση:
αν (substr ($ TheLine, $ CharPos, 1)) eq "")
Έχοντας μια παρένθεση πολύ λίγες σε ένα πρόγραμμα Perl μπορεί να προκαλέσει δυσκολίες στην εύρεση:
# Δεν μπορεί να χρησιμοποιηθεί σταθερό στοιχείο ως αριστερά arg implicit ->, # κοντά στο "1}"
Αρχείο 'μετρητής1. pl '; Γραμμή 39
# Βρήκαμε Scalar όπου αναμενόταν ο φορέας εκμετάλλευσης, κοντά στο "$ CharPos"
Αρχείο 'counter1. pl '; Γραμμή 40
# (Λείπει ερωτηματικό στην προηγούμενη γραμμή;)
# σφάλμα σύνταξης, κοντά στο "$ CharPos"
Αρχείο 'counter1. pl '; Γραμμή 40
Yarp! Όλα αυτά δημιουργήθηκαν επειδή η τελευταία παρένθεση στη Γραμμή 38 λείπει:
αν (substr ($ TheLine, $ CharPos, 1) eq ""
Εδώ είναι ένα άλλο καλό μάθημα στο να κυνηγάμε τα σφάλματα πληκτρολόγησης: Αν δεν βρείτε το σφάλμα εκεί, ανεβείτε σε μια γραμμή ή δύο και δείτε εάν το πρόβλημα ξεκίνησε νωρίτερα.
Μια τελευταία λέξη συμβουλών: Εμπιστευθείτε την Perl για να βρείτε τα απλά λάθη για εσάς (όπου μπορεί να) και θυμηθείτε ότι σας δίνει όλη τη βοήθεια που μπορεί, κάτι που είναι κάτι περισσότερο από ότι μπορείτε να πείτε για πολλές γλώσσες προγραμματισμού.