Σπίτι Προσωπικά Οικονομικά Αποφυγή κοινών υπερβάσεων στο Perl - ανδρείκελα

Αποφυγή κοινών υπερβάσεων στο Perl - ανδρείκελα

Πίνακας περιεχομένων:

Βίντεο: Μοσκοβισί: Κοινή βούληση για την αποφυγή νέου δράματος 2024

Βίντεο: Μοσκοβισί: Κοινή βούληση για την αποφυγή νέου δράματος 2024
Anonim

Η εισαγωγή ενός τυπογραφικού λάθους ή δύο κατά τη διάρκεια της σύνταξης ενός προγράμματος Perl δεν είναι ασυνήθιστο. Αλλά όταν επιχειρείτε να εκτελέσετε ένα πρόγραμμα που περιέχει μια ολίσθηση εισαγωγής κειμένου, ο Perl συνήθως συγχέεται και σας το λέει αναφέροντας ένα λάθος. Η φυσική αντίδραση για τους περισσότερους ανθρώπους, ακόμη και εκείνων με χρόνια εμπειρίας στον προγραμματισμό, είναι να ανησυχούν ή να θυμώνουν ή και οι δύο όταν εμφανιστεί ένα μήνυμα σφάλματος.

Μην πανικοβληθείτε. Πάρε μια βαθιά ανάσα. Πάρτε μια άλλη αργή, βαθιά αναπνοή. Σοβαρά, δεν μπορείτε να φτάσετε στη ρίζα του προβλήματος εάν είστε όλοι έντονοι και ενοχλημένοι. Ανεξάρτητα από το πόσα χρόνια προγραμματίζετε, καταλήγετε πάντοτε σε κάποια λάθη στον κώδικα που γράφετε.

Το Perl έχει μυριάδες μηνύματα σφάλματος, αλλά μερικά σίγουρα εμφανίζονται περισσότερο από άλλα λόγω κάποιων κοινών τύπων που όλοι φαίνεται να κάνουν. Τα ακόλουθα σφάλματα προκύπτουν από δευτερεύοντες παρεμβάσεις εισαγωγής κειμένου που μπορείτε εύκολα να αποφύγετε.

Ξεχνώντας ένα ερωτηματικό

Πιθανότατα το πιο συνηθισμένο μήνυμα σφάλματος που βλέπετε όταν ο προγραμματισμός στο Perl μοιάζει με αυτό:

# σφάλμα σύνταξης, κοντά στο "ανοικτό"

Αρχείο 'counter1. pl '; Γραμμή 10

# Η εκτέλεση αποκόπηκε λόγω σφαλμάτων κατά τη συμπλήρωση.

Μπορείτε να κοιτάξετε και να δείτε τη Γραμμή 10, αυτή με την ανοικτή δήλωση, και δεν θα δείτε τίποτα λάθος με αυτό. Το κόλπο εδώ είναι να εξετάσουμε τη δήλωση που έρχεται

πριν από την την ανοικτή δήλωση και να δούμε αν τελειώνει με ένα ερωτηματικό. (Το Perl ξέρει ότι μια δήλωση τελειώνει μόνο όταν συναντά ένα ερωτηματικό.) Σε αυτήν την περίπτωση, το σφάλμα προκαλείται από ένα κενό σημείο στο τέλος της Γραμμής 7 του προγράμματος:

$ TheFile = "δείγμα. txt "

Ξεχνώντας την τιμή

Το ακόλουθο είδος μηνύματος σφάλματος μπορεί να είναι εξαιρετικά απογοητευτικό αν δεν γνωρίζετε μια γρήγορη επιδιόρθωση:

Ανοίξτε (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 για να βρείτε τα απλά λάθη για εσάς (όπου μπορεί να) και θυμηθείτε ότι σας δίνει όλη τη βοήθεια που μπορεί, κάτι που είναι κάτι περισσότερο από ότι μπορείτε να πείτε για πολλές γλώσσες προγραμματισμού.

Αποφυγή κοινών υπερβάσεων στο Perl - ανδρείκελα

Η επιλογή των συντακτών

Πώς να δημιουργήσετε Flash CS5 σύμβολα κουμπιών - dummies

Πώς να δημιουργήσετε Flash CS5 σύμβολα κουμπιών - dummies

Για να βελτιώσετε τις ταινίες Adobe Flash Creative Suite 5 μπορούν να χρησιμοποιήσουν τα κουμπιά Flash CS5 για να δώσουν στους χρήστες τον έλεγχο της δράσης με έλεγχο χρόνου και πλοήγηση. Στο Flash, τα κουμπιά είναι ειδικοί τύποι συμβόλων που έχουν σχεδιαστεί για να ανταποκρίνονται σε αλληλεπίδραση με το ποντίκι ή το πληκτρολόγιο, όπως κλικ, ανατροπές και συγκεκριμένα πλήκτρα. Όταν συνδυάζεται με το ActionScript, ...

Πώς να δημιουργείτε κλίσεις στο Adobe Flash CS6 - ανδρείκελα

Πώς να δημιουργείτε κλίσεις στο Adobe Flash CS6 - ανδρείκελα

Adobe Flash CS6 έχει έναν τρόπο για να δημιουργήσετε κλίσεις για να γεμίσετε ένα χώρο που δεν θέλετε να είναι ένα συμπαγές χρώμα. Οι κλίσεις είναι μείγματα μεταξύ δύο ή περισσότερων χρωμάτων που μπορείτε να χρησιμοποιήσετε για να γεμίσετε οποιαδήποτε περιοχή ή σχήμα, ακριβώς όπως ένα συμπαγές χρώμα. Αν κοιτάξετε τον πίνακα Swatches, μπορείτε ...

Η επιλογή των συντακτών

Πώς να γράφετε σημειώσεις στο OneNote 2013 στα Android - ανδρείκελα

Πώς να γράφετε σημειώσεις στο OneNote 2013 στα Android - ανδρείκελα

Το OneNote, όπως οι εκδόσεις iOS και web app, η έκδοση Android του OneNote σάς επιτρέπει να αποκτάτε πρόσβαση και να επεξεργάζεστε σημειώσεις με ένα ελάχιστο σύνολο χαρακτηριστικών σε σύγκριση με τις εκδόσεις desktop του OneNote, όπως το OneNote 2013. Πώς να δημιουργήσετε μια νέα σημείωση στο Android Μπορείτε να δημιουργήσετε ...

2 τρόποι αποστολής και λήψης αλληλογραφίας στο Outlook - ανδρείκελα

2 τρόποι αποστολής και λήψης αλληλογραφίας στο Outlook - ανδρείκελα

Μετά τη διαμόρφωση του λογαριασμού ηλεκτρονικού ταχυδρομείου (S) στο Outlook 2013, η λήψη μηνυμάτων είναι μια αυτόματη διαδικασία. Το Outlook αποστέλλει αυτόματα και λαμβάνει μηνύματα όταν ξεκινάτε και επίσης σε διαστήματα 30 λεπτών (από προεπιλογή) όποτε εκτελείται το Outlook. Η εισερχόμενη αλληλογραφία σας μπαίνει αυτόματα στο φάκελο Εισερχόμενα. Μπορείτε επίσης να ξεκινήσετε μια χειροκίνητη διαδικασία αποστολής / λήψης σε ...

Πώς να γράφετε σημειώσεις στο OneNote 2013 για συσκευές iOS - dummies

Πώς να γράφετε σημειώσεις στο OneNote 2013 για συσκευές iOS - dummies

Για συσκευές IOS. Υπάρχουν πολλές λειτουργίες, παρόλο που η έκδοση του App της OneNote και η πλήρης εφαρμογή OneNote 2013 έχουν περισσότερη λειτουργικότητα. Πώς να δημιουργήσετε μια νέα σημείωση σε συσκευές iOS Μπορείτε να δημιουργήσετε μια νέα σημείωση, ανεξάρτητα από το πού βρίσκεστε στο OneNote, αν βλέπετε ...

Η επιλογή των συντακτών

Πώς να ρυθμίσετε την τοποθέτηση και το μέγεθος στην άκρη Animate - dummies

Πώς να ρυθμίσετε την τοποθέτηση και το μέγεθος στην άκρη Animate - dummies

Adobe Edge Animate CC δεν έχει έλλειψη ρυθμίσεις όσον αφορά την τοποθέτηση και το μέγεθος. Πολλά από αυτά τα χαρακτηριστικά λειτουργούν καλύτερα όταν φωλιάζουν στοιχεία, έτσι θέλετε να κατανοήσετε πώς λειτουργεί ο πίνακας στοιχείων. Η τοποθέτηση αναφέρεται στις συντεταγμένες του στοιχείου που σχετίζεται είτε με το Στάδιο είτε με το γονικό στοιχείο όταν ένα ...

Παγκόσμια ή Εφαρμοσμένες ρυθμίσεις στο Adobe Edge Animate - dummies

Παγκόσμια ή Εφαρμοσμένες ρυθμίσεις στο Adobe Edge Animate - dummies

Adobe Edge Animate CC δεν έχει έλλειψη ρυθμίσεων όταν πρόκειται για την τοποθέτηση και το μέγεθος. Οι ρυθμίσεις "Παγκόσμια" και "Εφαρμοσμένες" δεν τροποποιούν τις ρυθμίσεις, αλλά παρέχουν ένα μέσο για την εμφάνιση της σχετικής τοποθέτησης μεταξύ των ενσωματωμένων στοιχείων. Μπορεί να αναρωτιέστε ότι η διαφορά είναι μεταξύ των ρυθμίσεων Global και Applied. Εδώ είναι η ουσία: Παγκόσμιες ρυθμίσεις ...

Πώς να προσθέσετε ενέργειες σε στοιχεία στο Edge Animate - dummies

Πώς να προσθέσετε ενέργειες σε στοιχεία στο Edge Animate - dummies

Ένα ιδιαίτερα ισχυρό χαρακτηριστικό του Adobe Edge Animate Το CC είναι η δυνατότητα να προσθέσετε στη σύνθεση σας δράσεις, ενεργοποιητές, ετικέτες και χαρακτηριστικά δρομέα. Αυτά τα εργαλεία είναι αυτό που χρησιμοποιείτε για να κάνετε το κινούμενο γραφικό σας διαδραστικό, ώστε το κοινό σας να μπορεί να συμμετέχει σε αυτό που κάνει το κινούμενο σχέδιο σας αντί να πρέπει να καθίσετε εκεί και να παρακολουθήσετε παθητικά. Ένας ...