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 :

Variable WhereIam ?


Sujet :

Langage Perl

  1. #1
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut Variable WhereIam ?
    Bonjour,

    Ca y est j'ai presque fini mes scripts. Pour une question de portabilité j'ai besoin de la requete suivante :

    j'ai fait pour windows

    $dir_root=system('CD')

    apres un print "$dir_root" il me sort C:\proj_reporting\
    malheureusement j'aimerais plutot avec C:\\proj_reporting\\
    Pour que je puisse integrer $dir_root dans mon code.

    Il y a til une fonction Perl intégrée pour le faire ? J'ai parcouru les deux grosses docs presente sur developpez.com et j'ai pas trouvé chaussure à mon pied.

    Merci si vous avez une idée ou un script qui le fait deja pour nous !

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Bonjour,

    Essaiececi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print quotemeta("$dir_root");
    Le résultat de quotemeta peut aussi être mis dans la variable de ton choix.

    Bon courage.

  3. #3
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Reponse du shell :

    C:\
    0
    C'est bizarre le '0'

    http://www.perl.com/doc/manual/html/...quotemeta.html

  4. #4
    Membre habitué Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    pour la portabilité du code je préfère utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    use Cwd;
    my $dir_root = quotemeta(getcwd);
    print "working dir = ".$dir_root;
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use Cwd;
    my $dir_root = (getcwd);
    print "QM working dir = $dir_root\n";
    my $dir_root = quotemeta(getcwd);
    print "  working dir = $dir_root\n";
    résultat
    "D:\test.pl"

    QM working dir = D:/
    working dir = D\:\/

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je précise que le module Cwd fait partie du CORE (depuis un certain temps sinon un temps certain), donc pas de problème d'installation. Par contre, il n'est nul besoin de quotemeta(), sauf si tu veux utiliser ton chemin dans une regex, en effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "C:\\proj_reporting\\"; # donne : "C:\proj_reporting\"
    Le fait de doubler les "\" c'est pour éviter qu'ils soient détruit dans la représentation mémoire de la string, mais la string ne contient pas de "\\", elle ne contient plus que des "\". Autrement dit, si ton $dir_root s'imprime en "C:\proj_reporting\", il est déjà dans la bonne forme, tu peux tout à fait l'utiliser dans ton code (sauf dans les regex, mais c'est un autre problème, qui est valable pour toutes les chaînes à intégrer littéralement dans une regex).

    --
    Jedaï

  6. #6
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    Merci Jedai effectivement ca marche !
    Pas besoin de quotemeta

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Konrad Florczak va devenir expert perl d'ici quelques temps

  8. #8
    Membre averti
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Points : 336
    Points
    336
    Par défaut
    J'aimerais bien mais il faut que je reprenne les bases depuis le début.
    Mais ca y est je comprend deja comment ca marche.
    J'ai imprimé tous les types d'expression régulières possibles en forme de tableau. Je peux vous dire que j'ai pas l'air con au bureau avec ce truc accroché en gros sur ma paillasse

    Encore une fois merci de me filer des coups de main ! Vous imaginez pas comme vous me sauvez la vie (enfin surtout mon job).

    D'ailleurs un bon bouquain à me conseiller pour reprendre tout à zéro ?

    PS : Je viens de tester Net::LDAP c'est vraiment énormissime !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2002, 13h32
  2. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  3. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  4. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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