La différence entre "use strict " et "use warnings"
Fermé
tatsuyad
Messages postés
74
Date d'inscription
mercredi 3 juin 2015
Statut
Membre
Dernière intervention
3 avril 2016
-
Modifié par Whismeril le 22/08/2015 à 08:30
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 août 2015 à 14:35
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 août 2015 à 14:35
A voir également:
- Perl use strict
- Easy use data recovery - Télécharger - Récupération de données
- Denon perl pro test - Guide
- Use iphone as webcam - Guide
- Perl extension - Forum Perl
- You have an error in your sql syntax; check the manual that corresponds to your mariadb server version for the right syntax to use near ✓ - Forum MySQL
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
26 août 2015 à 14:35
26 août 2015 à 14:35
Salut tatsuyad,
C'est que ton code respecte les contraintes définies par strict et ne contient pas de code générant d'avertissement, ce qui est bien.
L'interpréteur Perl sans ces pragmas affiche les erreurs "critiques", qui arrêtent l'interprétation du code et l'exécution du programme.
Le pragma strict impose une syntaxe plus stricte que la syntaxe libérale de Perl par défaut, destinée à faciliter le débogage des programmes Perl : https://perldoc.perl.org/strict le non respect de la syntaxe aboutissant à l'arrêt de l'interprétation du code (le programme ne s'exécutant donc pas).
Le pragma warnings affiche des avertissements, mais n'interrompt pas l'interprétation ni l'exécution : https://perldoc.perl.org/warnings
sauf si tu le veux : https://perldoc.perl.org/warnings#Fatal-Warnings ( les avertissements révèlent en général des erreurs de programmation, ou des comportements à risques, il faut bien comprendre les messages d'avertissement et les éliminer.
Le pragma diagnostics peut aider à comprendre les avertissements en fournissant des explications plus détaillées sur les causes du signalement : https://perldoc.perl.org/diagnostics
Là tu parles de strict. C'est un prix assez faible à payer pour te sauver des heures de débogage, par exemple, parce que tu as oublié de renommer une variable, ou que tu as fait une faute de frappe dans une variable utilisée dans ton code.
Dal
j'ai essayé mon code en alternant deux modules l'une après l'autre.Mais je n'ai rien eu.....
C'est que ton code respecte les contraintes définies par strict et ne contient pas de code générant d'avertissement, ce qui est bien.
Le module warnings affiche simplement des erreurs moins nocifs et strict pour des erreurs critiques ?
L'interpréteur Perl sans ces pragmas affiche les erreurs "critiques", qui arrêtent l'interprétation du code et l'exécution du programme.
Le pragma strict impose une syntaxe plus stricte que la syntaxe libérale de Perl par défaut, destinée à faciliter le débogage des programmes Perl : https://perldoc.perl.org/strict le non respect de la syntaxe aboutissant à l'arrêt de l'interprétation du code (le programme ne s'exécutant donc pas).
Le pragma warnings affiche des avertissements, mais n'interrompt pas l'interprétation ni l'exécution : https://perldoc.perl.org/warnings
sauf si tu le veux : https://perldoc.perl.org/warnings#Fatal-Warnings ( les avertissements révèlent en général des erreurs de programmation, ou des comportements à risques, il faut bien comprendre les messages d'avertissement et les éliminer.
Le pragma diagnostics peut aider à comprendre les avertissements en fournissant des explications plus détaillées sur les causes du signalement : https://perldoc.perl.org/diagnostics
Et ce qui m'ennuie,c'est l'insertion de "my" à la tête de chaque variable si le module est incluse. C'est une galère !
Là tu parles de strict. C'est un prix assez faible à payer pour te sauver des heures de débogage, par exemple, parce que tu as oublié de renommer une variable, ou que tu as fait une faute de frappe dans une variable utilisée dans ton code.
Dal