Perl] ../script --opt=val comment récupérer?

Fermé
kepon - 9 févr. 2006 à 16:42
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 10 févr. 2006 à 19:02
Bonjours j'ai un petit problème assé urgent...

je débute totalement en PERL ... et sous linux je voudrai lancer un script (commande ./script) mais je voudrai définir des option, des valeur, des variable ... (je c'est pa tro comment appeler cela...)

exemple :

./script --option=valeur1



Dans mon scipt perl avoir la valeur1 dans une variable....

Merci de vos réponse rapide... david
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
9 févr. 2006 à 18:15
Salut,

Tiens jette un oeil là : http://articles.mongueurs.net/magazines/linuxmag49.html

Si j'ai bien tout compris sur ce que tu veux, ça devrait donner un truc du genre :
[jp@Mandrake tmpfs]$ cat script_perl.pl

#! /usr/bin/perl -s

$a = $ARGV[0];
$b = $ARGV[1];
$c = $ARGV[2];

print "Les paramètres passés au script sont : @ARGV\n\n";
print "La variable a = $a\n";
print "La variable b = $b\n";
print "La variable c = $c\n";

[jp@Mandrake tmpfs]$ ./script_perl.pl maman papa "et moi"

Les paramètres passés au script sont : maman papa et moi

La variable a = maman
La variable b = papa
La variable c = et moi

[jp@Mandrake tmpfs]$
C'est ce que tu voulais ?
1
hssissen Messages postés 844 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 9 janvier 2017 50
9 févr. 2006 à 18:08
Salut,
Je ne sais pas si tu veux parler d'arguments de ta commande (ton script), l'idéal c'est que tu nous envoie ton script pour voir plus clair!

@+
0
merci j'ai aussi trouvé mon bonheur avec la fonction : Getopt::Long.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
10 févr. 2006 à 10:39
Happy for you ;-))

Mais alors faut lui dire merci aussi à "lami20j" dans ton autre post :
http://www.commentcamarche.net/forum/affich-2086548#1
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
10 févr. 2006 à 19:02
Bonsoir,

Merci jipicy.

kepon il ne faut pas confondre une fonction avec un module.
la fonction : Getopt::Long.

En ce cas il s'agit d'un module pas une fonction.

Getopt::Long veut dire que dans le répertoire Getopt tu as le module perl Long.pm

Quand tu appelles un module avec
use Getopt::Long

perl cherche dans le tableau @INC pour voir s'il trouve le chemin vers ce répertoire.
[lamitest@localhost ~]$ perl -e '$"="\n";print "@INC\n";'
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6
/usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.3
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.3
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/5.8.6
.
[lamitest@localhost ~]$ find /usr/lib/perl5/ -name 'Getopt'
/usr/lib/perl5/5.8.6/Getopt
[lamitest@localhost ~]$ ls -l /usr/lib/perl5/5.8.6/Getopt/
total 96
drwxr-xr-x  2 root root  4096 déc 20 23:41 Long
-rw-r--r--  1 root root 69870 déc 14 20:22 Long.pm
-rw-r--r--  1 root root  8298 déc 14 20:22 Std.pm
[lamitest@localhost ~]$

0