Getopt::Long (Perl)

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]

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

Merci MisterFreeze

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

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

Parfait ! Encore merci MisterFreeze