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

Modules Perl Discussion :

appel d'un module externe avec argument en entree


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut appel d'un module externe avec argument en entree
    Bonsoir,
    Dans script.pl je voudrait appeler compute.pm avec un argument en entrée (ce n'est pas dans les FAQ). Voilà comment j'ai fait :
    (Dans script.pl )
    ...
    foreach $base (@bases)
    {
    use compute $base;
    ...
    }

    (ce qui ne fonctionne pas et dans compute.pm)
    ...
    my ($base) = @_;
    print $base;

    Comment faire pour qu'il interprète correctement l'argument ?

  2. #2
    Expert confirmé
    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
    Par défaut
    Tu sembles confondre module et fonction, un module n'a pas d'argument. Quand on passe des arguments à la fonction use, le premier argument est le module à importer et le second est transmis à la fonction Export() qui s'occupe de l'importation des symboles du module dans ton script.

    Si tu nous dis ce que tu essaye vraiment de faire, nous pourrons sans-doute te proposer une bonne solution.

    --
    Jedaï

  3. #3
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    Ok, après avoir encore réfléchit, je pense, en effet que je m'y prends mal.
    Ce que j'ai à faire est un peu tordu :
    Une chaîne de traitement est lancée par un fichier batch.
    Cette chaîne est constituée d'executions successives de scripts perl (et un java qui traîne).
    Le problème est le suivant : Cette chaîne s'est complexifiée et n'est plus linéaire. Elle doit même être éxécutée plusieurs fois avec des arguments différents en entrée. La plupart des scripts perl ont donc maintenant besoin d'être appelés avec un argument en entrée.
    Mon idée est la suivante : remplacer le fichier bacth par un script perl qui permettra de gérer tout ça et faire des scripts de la chaîne des sous-programmes qu'on appelle dans une boucle avec des arguments en entrée.

  4. #4
    Expert confirmé
    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
    Par défaut
    Ok, dans ce cas, ce dont tu as besoin est sûrement de la fonction system() ou peut-être de `command`. Va donc voir la FAQ sur ce site, elle explique très bien tout ça. (L'idéal serait bien sûr de transformer tes scripts Perl en modules et d'enchaîner des fonctions dans ton script principal, mais c'est une sérieuse refactorisation, à toi de voir si le jeu en vaut la chandelle).

    --
    Jedaï

  5. #5
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut essais
    Merci.
    J'ai déjà essayé ce qu'il y a dans les FAQ avec system du style
    system "perl ssprog1.pl $param";
    Mais le programme ne reçois rien.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Par défaut
    tes parametres sont stockés dans un tableau qui s'appel '@ARVG'

    pour récupérer ton argument.



  7. #7
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut system ------> @ARGV
    Merci, c'est l'information simple qui me manquait. Je retravaille et je clos le sujet si ça marche.

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

Discussions similaires

  1. [MySQL] PHP.PDO Appel d’une procédure stockée MYSQL avec arguments IN, OUT et INOUT
    Par Depite dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/03/2015, 10h20
  2. rexx appel routine externe avec arguments
    Par qqoos dans le forum z/OS
    Réponses: 2
    Dernier message: 13/05/2009, 11h51
  3. Appel script Perl avec arguments
    Par metalcoyote dans le forum Général Java
    Réponses: 5
    Dernier message: 12/06/2008, 16h33
  4. Dynpro et appel à "Module" externe
    Par danael dans le forum SAP
    Réponses: 3
    Dernier message: 01/04/2008, 08h32
  5. appel explorer avec arguments
    Par mick84m dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 31/05/2006, 15h23

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