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   -
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.
A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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