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;
	#-----------------------------------------------------
}