Первое значение пусто для параметров с несколькими значениями в Perl Getopt::Long

Может ли кто-нибудь помочь мне понять, почему это происходит? Я использую Perl Getopt:: Long для анализа параметров с несколькими значениями, но я получаю некоторые странные результаты. Следующий код:

#!/usr/bin/perl
use warnings;
use strict;
use Getopt::Long;

my @b_in = "";
GetOptions( 'b=s{,}'  => \@b_in );
my $blen = @b_in;

print "Length of b args: $blen\n";
print "List of b args: $b_in[0], $b_in[1] and $b_in[2]\n";
print "The first b: $b_in[0]\n";

производит этот вывод:

$ ./optl.pl -b b_abr c_arg
Length of b args: 3
List of b args: , b_abr and c_arg
The first b: 

Почему первый аргумент в списке аргументов пуст?

1 ответ

Решение

Потому что вы инициализировали это с "" вместо (), Опции добавляются к элементу, который уже был там.

Другие вопросы по тегам