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 :

probleme sur un tableau


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut probleme sur un tableau
    Re-Bonjour,

    J'ai un autre souci. A partir de mon programme1, je passe des variables en paramétres. Et je veux que ces variables soient reprisent dans un autre programme (2).

    Ce programme2 prend le resultat de ces variables dans un tableau et récupére les valeurs , donc :
    -d patrick.dupond\@toto.com
    -o test valeur

    le probléme est le suivant, pour le second programme, il décompose le resulat de la variable ""-o test valeur" en "-o test" puis "valeur".

    Comment puis je lui faire comprendre que "-o test valeur" est bien une et une seule variable.

    merci d'avance

    ps : toutes la variables n'ont pas été déclaré!!! mais dans le script, elle existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #prog1:
    my ($param1, $param2) = ("-d patrick.dupond\@toto.com", "-o test valeur");
    system ("$sous_prog2 $param1 $param2");
     
    #sous_prog2:
     
    #  Recupere et controle la variable pour la passer dans les paramétres
    #======================================================
     
    @Tableau= (@ARGV,"Fin");
    while ( $#Tableau gt 0 )
    {
    	#-----------------------------------------------------
    	if ( $Tableau[0] eq "-d" || $Tableau[0] eq "-D" )
    		{	$Destinataire=$Tableau[1];	
    			splice (@Tableau,0,2);
    			next ;	}
    	#-----------------------------------------------------
    	if ( $Tableau[0] eq "-o" || $Tableau[0] eq "-O" )
    		{	$Objet=$Tableau[1];	
    			splice (@Tableau,0,2);	
    			next ;	}
    	#-----------------------------------------------------
    	if ( $Tableau[0] eq "-t" || $Tableau[0] eq "-T" )
    		{	$FicText=$Tableau[1];	
    			splice (@Tableau,0,2);	
    			next ;	}
    	#-----------------------------------------------------
    	if ( $Tableau[0] eq "-t" || $Tableau[0] eq "-T" )
    		{	$FicText=$Tableau[1];	
    			splice (@Tableau,0,2);	
    			next ;	}
    	#-----------------------------------------------------
    	if ( $Tableau[0] eq "-p" || $Tableau[0] eq "-P" )
    		{	$FicPJ=$Tableau[1];
    			splice (@Tableau,0,2);
    			next ;	}
    	#-----------------------------------------------------
    	print "Erreur d'utilisation parametre : $Tableau[0] \n";
    	fct_what;
    	exit -1;
    	#-----------------------------------------------------
    }

  2. #2
    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
    Ceci n'est pas géré par Perl mais par le shell (ou alors en employant la forme à plusieurs arguments de system() ou exec() ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my ($param1, $param2) = ('-d patrick.dupond@toto.com', '-o "test valeur"');
    system ("$sous_prog2 $param1 $param2");
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system($sous_prog2, '-d', 'patrick.dupond@toto.com', '-o', 'test valeur');
    --
    Jedaï

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    pourquoi tu ne fais pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (@argv<2) {
    echo "Usage: $_ blabla bleble\n";
    }
    @truc = ARGV[0];
    @truc1 = [ARGV[1];
    et tu fais pointer @truc et @truc1 a ce que tu veux.

    Sinon j'ai deja vu des trucs de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    $host=$argv[1];
    $path=$argv[2];
    $user=$argv[3];
    $pass=$argv[4];
    $port=80;
    $prefix="...";
    $id="2";
    $discl=0;
    $proxy="";
    for ($i=3; $i<=$argc-1; $i++){
    $temp=$argv[$i][0].$argv[$i][1];
    if ($temp=="-p")
    {
      $port=str_replace("-p","",$argv[$i]);
    }
    if ($temp=="-P")
    {
      $proxy=str_replace("-P","",$argv[$i]);
    }
    if ($temp=="-T")
    {
      $prefix=str_replace("-T","",$argv[$i]);
    }
    if ($temp=="-u")
    {
      $user_id=str_replace("-u","",$argv[$i]);
    }
    if ($temp=="-x")
    {
      $discl=1;
    }
    }
    Enfin je sais pas si c'est exactement ce que tu demandes

    ++

  4. #4
    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
    Ce n'est pas du Perl...
    En plus en Perl, on ferais plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #! /usr/bin/perl
     
    use strict;
    use Getopt::Std;
     
    my %options;
    getopt('dotp', \%options);
    --
    Jedaï

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    arf yep j'etais entrain de matter un script php j'ai pas fais gaff lool

    Sorry

    En tout cas good le module GetOpt::Std

  6. #6
    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
    Citation Envoyé par Nickname
    En tout cas good le module GetOpt::Std
    Mouais... Je crois que je préfère Getopt::Long : il est aussi dans le CORE, et il est à la fois plus puissant et plus cohérent, pour un exemple vraiment complet de son utilisation, on peut jeter un coup d'oeil à mon "encodeur", dans les snippets du forum.

    --
    Jedaï

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Points : 89
    Points
    89
    Par défaut
    je jetterai un oeil aux snippets

    Merci Jedai

Discussions similaires

  1. Probleme sur tableau
    Par Juju485 dans le forum C
    Réponses: 7
    Dernier message: 31/12/2012, 15h52
  2. probleme sur un tableau
    Par mattmax dans le forum VB.NET
    Réponses: 3
    Dernier message: 17/04/2012, 14h04
  3. Probleme de realloc sur un tableau 2d.
    Par gnouz dans le forum C
    Réponses: 9
    Dernier message: 08/06/2007, 13h35
  4. Probleme sur affichage d'un tableau
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/10/2006, 16h31
  5. Probleme sur le redim preserve d'un tableau
    Par shinrei dans le forum ASP
    Réponses: 6
    Dernier message: 03/06/2006, 16h12

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