IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Constant, debug, module sont dans un bateau


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Par défaut Constant, debug, module sont dans un bateau
    Bonjour,

    j'essaye de résoudre un problème et j'aurai besoin de vos points de vues.

    J'ai un script CGI dans lequel j'ai définie une constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use constant DEBUG => 0;
    Ce script appelle un module perso, et je voudrais que quand je passe le DEBUG à 1 dans le cgi principal que le mode DEBUG s'applique aussi dans le module ..

    je suis partit dans l'idée d'écrire une fonction set_debug dans le module pour y modifier/définir la constante DEBUG du module.
    Mais ça ne fonctionne pas :p je n'ai pas l'impression que la modification de constante soit possible

    Module.pm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    use constant DEBUG => 0;
     
    sub set_debug {
           my $debug_value = shift;
           DEBUG => 1 if ($debug_value);
    }
    Qu'est ce qui me reste comme solution? avez-vous déjà été face à ce besoin?

  2. #2
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Bonjour,

    Citation Envoyé par florent
    Mais ça ne fonctionne pas :p je n'ai pas l'impression que la modification de constante soit possible
    Par définition, une constante ne change pas... Si tu veux vraiment la changer déclare la comme variable.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Par défaut
    c'est ce que j'ai toujours pensé mais j'ai eu un doute quand j'ai vu dans la doc officielle qu'il changeait les valeurs de reference déclarées comme constant

    http://perldoc.perl.org/constant.html

    Even though a reference may be declared as a constant, the reference may point to data which may be changed, as this code shows.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        use constant ARRAY => [ 1,2,3,4 ];
        print ARRAY->[1];
        ARRAY->[1] = " be changed";
        print ARRAY->[1];

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je crois que Perl Best Practices ne recommande pas l'usage de constant.
    Par contre, je ne sais plus ce qu'il recommande pour les constantes...

  5. #5
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Citation Envoyé par florent
    c'est ce que j'ai toujours pensé mais j'ai eu un doute quand j'ai vu dans la doc officielle qu'il changeait les valeurs de reference déclarées comme constant
    Du coup, je ne vois plus l'intérêt de déclarer des constantes si c'est pour les changer mais bon ...

    Citation Envoyé par Philou67430
    Par contre, je ne sais plus ce qu'il recommande pour les constantes...
    Il me semble qu'il recommande l'utilisation du package Readonly

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    C'est aussi ce que je pensais, mais je ne voulais pas dire de bêtise
    En lisant la doc de Readonly, on peut d'ailleurs y voir la longue liste des inconvénients du pragma constant.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Par défaut
    Citation Envoyé par Beniou Voir le message
    Du coup, je ne vois plus l'intérêt de déclarer des constantes si c'est pour les changer mais bon ...
    Ce n'est pas pour les modifier, c'était juste pour définir une constante via une fonction...

Discussions similaires

  1. BIND DHCPd DDNS RNDC sont dans un bateau!
    Par ArKam dans le forum Administration système
    Réponses: 1
    Dernier message: 05/01/2011, 17h32
  2. Réponses: 0
    Dernier message: 12/03/2010, 15h45
  3. Frame, Iframe et Absolute sont dans un bateau
    Par vodnok dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/11/2008, 10h30
  4. sh, papa jar et bebe jar sont dans un bateau
    Par decksroy dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2007, 10h56
  5. Delphi 7.1, MySQL et dbEXpress sont dans un bateau...
    Par jl_s dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/01/2006, 00h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo