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 :

faire l'invocation de commande en perl


Sujet :

Langage Perl

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut faire l'invocation de commande en perl
    Bonjour


    Sur shell il est possible de utiliser une commande dans une autre.

    echo " $(ls)"

    Je voudrais faire la même chose sur perl:


    map ( {open (@{$_}[0], "> $ficF02. substr(@{$_}[2],2)") } values %tableVir);

    ou

    ficF02 c'est le nom d'un fichier "F02000000"
    tableVir c'est une table de hachage qui contient des references sur des listes.
    sur chaque liste je veux prendre qu'un champ specifique " 0202"
    une fois que j'ai ce champ je veux l'ajouter comme suffixe à mon nom de fichier que je vien de créer.

    Mon premier problème c'est que ce champ contient de spaces vides.
    C'est pour cela que j'utilise le substr, mais lorsque je compile j'obtient
    F02000000.substr( 0202 ,2) au lieu de F02000000.0202

    Est ce que sur perl il y a le meme principe de l'invocation de commade de shell en ce qui concerne l'exécution de la fonction substr.



    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 426
    Par défaut
    Bonjour,

    essaye plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "> $ficF02". substr(@{$_}[2],2)

  3. #3
    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,

    Quand on met une commande entre double quote elle n'est pas interpretée comme telle au contraire des variables $qelquechose.

    Dans ton cas tu pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    map ( {open (@{$_}[0], "> $ficF02.".substr(@{$_}[2],2)) } values %tableVir);
    Bon je n'ai pas testé

    Edit : Bon ben apparemment jaljal est d'accord avec moi

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut Je viens de comprendre
    Je decommenté la commande substr

    Voici ce que j'ai fait.

    map ( {open (@{$_}[0], "> $ficF02".substr(@{$_}[2],2)) } values %tableVir);

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut invocation de commande en perl.
    Vous êtes très rapides pour repondre.

    Lorsque je me suis rendu compte de mon erreur et corrigé mon code vous avez dejà envoyé ses réponses.

    Merci beaucoup.

  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
    Quand tu postes un bout de code, n'oublie pas d'utiliser la balise [CODE] (icone )

    Sinon, pour appeler des commandes systèmes en perl, il existe au moins deux moyens qui retournent des valeurs différentes selon le besoin :
    - la function system (perldoc -f system)
    - l'opérateur qx ou ` (perldoc perlop)

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

Discussions similaires

  1. invocation de commande shell
    Par wtfu dans le forum Général Java
    Réponses: 2
    Dernier message: 30/01/2008, 11h55
  2. executer une commande non perl avec perl
    Par kolombo dans le forum Langage
    Réponses: 17
    Dernier message: 07/08/2006, 11h28
  3. Réponses: 4
    Dernier message: 19/01/2006, 14h34
  4. Commande shell/perl...
    Par Life Hunter dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/11/2005, 14h51
  5. [DOS] faire un substring en commande DOS
    Par blaz dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 10/01/2005, 10h09

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