OVH Cloud OVH Cloud

fonction GetOption

3 réponses
Avatar
romario
Salut a tous,

je souhaite savoir si pour l'ecriture d'un script avec argument en ligne de
commande (genre monscript.pl --host=... --delay=... ... ) il valait mieux
utiliser la fonction GetOption (use Getopt::Long) ou se limiter a @ARGV.

Si oui pourquoi. J'i l'impression que l'on peut se contenter de @ARGV.

Merci de vos reponses.

3 réponses

Avatar
Nicolas George
"romario" wrote in message <4492b841$0$1186$:
Si oui pourquoi. J'i l'impression que l'on peut se contenter de @ARGV.


On peut, mais un traitement correct des différents cas de figure demande
beaucoup de code. Donc autant prendre quelque chose de déjà fait, et bien
fait.

Avatar
Pierrick LE GALL
Bonjour,

"romario" writes:

je souhaite savoir si pour l'ecriture d'un script avec argument en
ligne de commande (genre monscript.pl --host=... --delay=... ... ) il
valait mieux utiliser la fonction GetOption (use Getopt::Long) ou se
limiter a @ARGV.


Il vaut évidemment largement mieux utiliser GetOption. Exemple :

use Getopt::Long;

my %opt = ();
GetOptions(
%opt,
qw/help version dry-run pattern=s move_here/
);

Après, je peux utiliser directement $opt{pattern} par exemple.

Si oui pourquoi. J'i l'impression que l'on peut se contenter de @ARGV.


Parce que c'est nettement plus puissant et souple. Par exemple :

$ my_script.pl --p="mon pattern"

est équivalent à

$ my_script.pl --pattern="mon pattern"

GetOptions va résoudre automatiquement le nom de l'option s'il n'y a pas
d'ambigüité.

@+

--
Pierrick LE GALL
http://le-gall.net/pierrick

Avatar
romario
Cool, merci pour votre aide !

On vient encore de louper un bon match Argentine Serbie 6-0

Merci