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
Bonjour.

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.

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
Salut tatsuyad,

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
0