La différence entre "use strict " et "use warnings"
tatsuyad
Messages postés
75
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour.
On m'a appris que Perl s'approprie des fonctions préparées comme d'autres
languages.
Le message ci-dessus est un extrait d'un sujet de forum hardware.com.Pour comprendre son explication,j'ai essayé mon code en alternant deux modules l'une après l'autre.Mais je n'ai rien eu.....
Le module warnings affiche simplement des erreurs moins nocifs et strict pour des erreurs critiques ?
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 !
On m'a appris que Perl s'approprie des fonctions préparées comme d'autres
languages.
En voyent les bouts de codes dans les differents post j'ai l'impression que personne n'utilise le pragma strict!
c'est super important, et meme si ca peu paraitre un peu chiant au debut (il faut declarer toutes ses variables) ca aide vraiment à eviter les bugs.
warnings (ou -w) c'est un peu different pasque parfois on veux pouvori bidouiller en paix, mais le strict ya clairement aucune contrindication. Au pire un petit 'no strict "ref"' pour construire dynamquelment des variables ou appels de fonction (avec ${}) et ca roule dans tous les cas
alors use strict!
Le message ci-dessus est un extrait d'un sujet de forum hardware.com.Pour comprendre son explication,j'ai essayé mon code en alternant deux modules l'une après l'autre.Mais je n'ai rien eu.....
Le module warnings affiche simplement des erreurs moins nocifs et strict pour des erreurs critiques ?
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 !
EDIT : Ajout de la balise de citation
<block>Texte cité ici</block> Merci d'y penser dans tes prochains messages. |
A voir également:
- Perl use strict
- Use iphone as webcam - Guide
- Denon perl pro test - Accueil - Audio
- Strict pop up blocker - Télécharger - Outils pour navigateurs
- Active perl - Télécharger - Édition & Programmation
- Android recovery use volume up/down and power - Guide
1 réponse
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