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