# Getopt::Long (Perl)

**URL:** <https://www.debian-fr.org/t/getopt-long-perl/58783>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 5:59 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783 "2016-02-21T17:59:27Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Février 21, 2016, 5:59 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783/1 "2016-02-21T17:59:27Z")

</div>

Bonjour,

un petit BUG ( pas bien génant ) de mon script ( lscl ):

[code]use Getopt::Long;

# TRAITEMENT DE LA LIGNE DE COMMANDE:

my $all;  
my $aide;  
my $color; # formes: -n OU --nocolor  
my $options= GetOptions(  
“all” =\> $all,  
“nocolor” =\> $color,  
“help”=\> $aide,  
);  
[/code]

les appels du type:  
lscl -a -n  
lscl --all -n ( pas très POSIX --all avant -n )  
lscl -a --nocolor  
etc… fond bien ce que j’en attend.  
( il est même très tolérant avec la forme  
lscl --a --n )

mais les appels du type:  
lscl -na  
lscl -an  
renvoient le message d’erreur "Unknown option: an"  
or man Getopt::Long précise bien que la forme concaténée à 1 lettre( et un tiret) est prise en compte, comme le sont les options négatives avec ! ou --nooption.

Getopt::Long étant tellement éprouvé que je n’imagine pas le BUG de son coté, mais plutôt ma faiblesse en anglais

PS  
j’ai aussi essayé:

`my $options= GetOptions(
    "all|a" => \$all,
    "nocolor|n" => \$color,
    "help|h"=> \$aide,
);`  
avec les même résultats

PPS Il y a bien aussi l’option Configure(“gnu\_compat”), mais elle m’ignore complètement…

PPPS  
[size=85]Pour info lscl est un script ( liste les commentaires en ligne ) compagnon de setcl ( édite un commentaire en ligne ), avec lequel je commente des noms de fichier ou de répertoire avec setfattr, que lscl lit avec getfattr  
J’y ajoute l’option noir et blanc ( --nocolor ) pour pouvoir l’utiliser dans des tubes ( pipe )[/size]

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 6:00 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783/2 "2016-02-21T18:00:07Z")

</div>

J’ai pris le temps pour te répondre. Il faut positionner l’option bundling et explicitement définir les option courtes (avec “h|help” par exemple).

L’article des mongueurs est très intéressant à ce sujet : [articles.mongueurs.net/magazines/linuxmag49.html](http://articles.mongueurs.net/magazines/linuxmag49.html)

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Février 21, 2016, 6:00 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783/3 "2016-02-21T18:00:57Z")

</div>

Merci MisterFreeze

j’ai bien(?) relu cet article mais pas trouvé cette histoire de bundling.  
J’y retourne dés que possible.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783/4 "2016-02-21T18:01:27Z")

</div>

Au chapitre « Ca ne vous suffit toujours pas… ».

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Février 21, 2016, 6:08 UTC](https://www.debian-fr.org/t/getopt-long-perl/58783/5 "2016-02-21T18:08:46Z")

</div>

Parfait ! Encore merci MisterFreeze
