J'ai un petit soucis avec Pod::Usage, c'est un module que j'utilise
pour la premi=E8re fois.
Dans la doc, il y a un exemple :
GetOptions(...) || pod2usage(2)
Au d=E9but j'ai pens=E9 que pod2usage(2) =E9tait ex=E9cut=E9 si aucune
option n'=E9tait pass=E9e, mais le script s'ex=E9cute quand m=EAme, puisque
qu'il n'y a pas d'erreur d'argument.
Sauriez-vous comment ex=E9cuter pod2usage si aucune option n'est saisie,
ou en donnant une liste d'options obligatoire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) 1 Mar 2006 06:55:00 -0800, "ctobini" écrivait (wrote):
J'ai un petit soucis avec Pod::Usage, c'est un module que j'utilise pour la première fois.
Dans la doc, il y a un exemple :
GetOptions(...) || pod2usage(2)
Au début j'ai pensé que pod2usage(2) était exécuté si aucune option n'était passée, mais le script s'exécute quand même, puisque qu'il n'y a pas d'erreur d'argument.
Sauriez-vous comment exécuter pod2usage si aucune option n'est saisie, ou en donnant une liste d'options obligatoire ?
À mon avis, votre problème est plutôt avec Getopt::Long... ;-)
La fonction GetOptions (qui est donc proposée par Getopt::Long) ne propose pas de mécanisme pour rendre une option obligatoire (cela n'a pas beaucoup de sens à mon avis). Mais vous pouvez traiter le cas vous-même facilement.
Supposons que vous vouliez un script qui prend soit l'option --help,-h soit l'option --include,-i avec un argument (une chaine).
Il vous suffit de faire :
my ($help, $include); GetOptions('help' => $help, 'include=s' => $include) or die "Pas les bonnes optionsn"; if (not defined $help and not defined $include) { die "Option --help,-h ou option --include,-i obligatoire...n"; }
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) 1 Mar 2006 06:55:00 -0800,
"ctobini" <ctemp2@free.fr> écrivait (wrote):
J'ai un petit soucis avec Pod::Usage, c'est un module que j'utilise
pour la première fois.
Dans la doc, il y a un exemple :
GetOptions(...) || pod2usage(2)
Au début j'ai pensé que pod2usage(2) était exécuté si aucune
option n'était passée, mais le script s'exécute quand même, puisque
qu'il n'y a pas d'erreur d'argument.
Sauriez-vous comment exécuter pod2usage si aucune option n'est saisie,
ou en donnant une liste d'options obligatoire ?
À mon avis, votre problème est plutôt avec Getopt::Long... ;-)
La fonction GetOptions (qui est donc proposée par Getopt::Long) ne
propose pas de mécanisme pour rendre une option obligatoire (cela n'a
pas beaucoup de sens à mon avis). Mais vous pouvez traiter le cas
vous-même facilement.
Supposons que vous vouliez un script qui prend soit l'option --help,-h
soit l'option --include,-i avec un argument (une chaine).
Il vous suffit de faire :
my ($help, $include);
GetOptions('help' => $help, 'include=s' => $include)
or die "Pas les bonnes optionsn";
if (not defined $help and not defined $include) {
die "Option --help,-h ou option --include,-i obligatoire...n";
}
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) 1 Mar 2006 06:55:00 -0800, "ctobini" écrivait (wrote):
J'ai un petit soucis avec Pod::Usage, c'est un module que j'utilise pour la première fois.
Dans la doc, il y a un exemple :
GetOptions(...) || pod2usage(2)
Au début j'ai pensé que pod2usage(2) était exécuté si aucune option n'était passée, mais le script s'exécute quand même, puisque qu'il n'y a pas d'erreur d'argument.
Sauriez-vous comment exécuter pod2usage si aucune option n'est saisie, ou en donnant une liste d'options obligatoire ?
À mon avis, votre problème est plutôt avec Getopt::Long... ;-)
La fonction GetOptions (qui est donc proposée par Getopt::Long) ne propose pas de mécanisme pour rendre une option obligatoire (cela n'a pas beaucoup de sens à mon avis). Mais vous pouvez traiter le cas vous-même facilement.
Supposons que vous vouliez un script qui prend soit l'option --help,-h soit l'option --include,-i avec un argument (une chaine).
Il vous suffit de faire :
my ($help, $include); GetOptions('help' => $help, 'include=s' => $include) or die "Pas les bonnes optionsn"; if (not defined $help and not defined $include) { die "Option --help,-h ou option --include,-i obligatoire...n"; }
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
ctobini
Bonjour et merci de votre réponse,
J'ai donc traité le cas comme vous me l'avez conseillé, en renvoyant tout de même pod2usage(2), histoire de ne pas avoir écrit le pod pour rien :-)
Merci encore et bonne journée.
C. Tobini
Bonjour et merci de votre réponse,
J'ai donc traité le cas comme vous me l'avez conseillé, en renvoyant
tout de même pod2usage(2), histoire de ne pas avoir écrit le pod pour
rien :-)