Table des matières:
Vidéo: HOW TO Partner Check - Julia Chanourdie 2025
Il n'est pas rare de saisir une faute de frappe ou deux au cours de l'écriture d'un programme Perl. Mais lorsque vous essayez d'exécuter un programme contenant une erreur de saisie de texte, Perl devient généralement confus et vous le signale en signalant une erreur. La réaction naturelle de la plupart des gens, même ceux qui ont des années d'expérience en programmation, est de s'inquiéter ou de s'énerver ou les deux quand un message d'erreur apparaît.
Ne paniquez pas. Prenez une profonde respiration. Prenez une autre respiration lente et profonde. Sérieusement, vous ne pouvez pas aller à la racine du problème si vous êtes tous tendus et dérangés. Peu importe combien d'années vous programmez, vous finissez toujours par trouver des erreurs dans le code que vous écrivez.
Donc, maintenant que vous êtes (espérons-le!) Un peu plus calme, vous pouvez commencer à apprécier le fait que Perl a des messages d'erreur plus utiles que presque n'importe quel autre langage de programmation. Les messages ne sont pas toujours juste sur l'argent, mais ils peuvent vous rapprocher de l'endroit où le problème réside avec une recherche minime de votre part.
Perl a une myriade de messages d'erreur, mais quelques uns surgissent certainement plus que d'autres en raison de quelques fautes de frappe courantes que tout le monde semble faire. Les erreurs suivantes résultent de fautes de saisie de texte mineures que vous pouvez facilement éviter.
Oublier un point-virgule
Le message d'erreur le plus courant que vous voyez lors de la programmation en Perl ressemble à ceci:
# erreur de syntaxe, proche de "open"
Fichier 'counter1. PL'; Ligne 10
# L'exécution a été interrompue en raison d'erreurs de compilation.
Vous pouvez regarder et regarder la ligne 10, celle avec la déclaration ouverte, et vous ne verrez rien de mal à cela. L'astuce ici est d'examiner l'instruction qui vient avant l'instruction ouverte et de voir si elle se termine par un point-virgule. (Perl sait qu'une instruction se termine uniquement lorsqu'elle rencontre un point-virgule.) Dans ce cas, l'erreur est provoquée par un point-virgule manquant à la fin de la ligne 7 du programme:
$ TheFile = "échantillon. txt "
Oublier un guillemet
Le type de message d'erreur suivant peut être extrêmement frustrant si vous ne connaissez pas de solution rapide:
# Mot nu trouvé où l'opérateur attend, près de
#" open (INFILE, $ TheFile) ou die "The"
# (Peut-être une chaîne multi-ligne "runaway" à partir de
# ligne 7)
Fichier 'counter1. PL'; Ligne 10
Cette erreur est similaire à l'oubli d'un point-virgule; à la place, c'est un guillemet accidentellement omis:
$ TheFile = "sample. SMS;
Dans ce cas, Perl a fait du bon travail pour deviner ce qui ne va pas, suggérant qu'une chaîne de plusieurs lignes sur la ligne 7 est le problème, ce qui est tout à fait juste.
Entrer une parenthèse trop ou trop peu
Lorsque vous avez des charges de parenthèses ouvrantes et fermantes dans un programme, il est facile d'en glisser une de plus par accident. Si c'est le cas, vous pouvez voir un message de Perl qui lit quelque chose comme ceci:
# erreur de syntaxe, près de ") eq"
Fichier 'counter1. PL'; Erreur de syntaxe de ligne 38
#, près de "}"
Fichier 'counter1. PL'; Ligne 42
Ici, Perl ne peut pas déterminer où l'erreur est exactement, mais il l'a bien compris sur la première conjecture: La ligne 38 contient une parenthèse droite supplémentaire:
if (substr ($ TheLine, $ CharPos, 1)) eq "")
Avoir une parenthèse trop petite dans un programme Perl peut causer des problèmes plus difficiles à trouver:
# Impossible d'utiliser un élément constant comme argument gauche de implicite ->,
# près de "1}"
Fichier 'counter1. PL'; Ligne 39
# Scalar trouvé où l'opérateur attendait, près de "$ CharPos"
Fichier 'counter1. PL'; Ligne 40
# (point-virgule manquant sur la ligne précédente?)
# erreur de syntaxe, près de "$ CharPos"
Fichier 'counter1. PL'; Ligne 40
Yarp! Tout cela a été produit parce que la dernière parenthèse sur la ligne 38 est manquante:
if (substr ($ TheLine, $ CharPos, 1) eq ""
Voici une autre bonne leçon pour rechercher les erreurs de frappe: Si vous n'y trouvez pas l'erreur, montez une ligne ou deux et voyez si le problème a commencé plus tôt.
Un dernier conseil: faites confiance à Perl pour trouver les fautes de frappe simples can), et rappelez-vous qu'il vous donne toute l'aide possible, ce qui est plus que ce que vous pouvez dire pour de nombreux langages de programmation.
