É de Perl Getopt :: Longo aceitar abreviaturas de interruptores um bug?

StackOverflow https://stackoverflow.com/questions/921109

  •  06-09-2019
  •  | 
  •  

Pergunta

Este é um script simples que tenho escrito para teste de manuseio argumento de linha de comando:

use Getopt::Long;

my $help = 0;

GetOptions(
'help|h|?' => \$help,
) or die "Error!";

print "OK\n";

Os resultados que obtive são as seguintes:

D:\>perl test.pl --help
OK

D:\>perl test.pl --hell
Unknown option: hell
Error! at test.pl line 10.

D:\>perl test.pl --he
OK

D:\>perl test.pl --hel
OK

Alguém notou isso antes? É o comportamento (aceitar que ele e hel em vez de ajuda) um bug potencial?

Foi útil?

Solução

Não, é intencional. Ele aceita a versão mais curta não ambiguious da opção, por isso, se você tinha outra opção "--hex", que não aceitaria "--he" mas aceitaria "--hel".

Outras dicas

é um recurso documentado aqui

Esta é uma recurso . As opções podem ser abreviados, desde que o resultado não é ambígua. Se você não quiser que este comportamento é possível desativá-lo através de configuração .

Se este fosse um erro, o lugar para verificar para saber se é ou não foi um conhecido é o bug fila em rt.cpan.org .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top