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
    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 ~]$
    

    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!

        @+