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

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

4 réponses

  1. Modérateur
    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. 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!

      @+
      1. Modérateur
        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 ~]$