mlgrassi
(usa Debian)
Enviado em 21/09/2017 - 17:11h
Tenho um script em perl que serve para gerar uma planilha a qual deve ser preenchida com os valores passados por parâmetro via shell. Por exemplo, supondo que eu queira gerar uma planilha assim:
Nome Completo Idade
Joaozinho da Silva 18
Mariazinha Oliveira 20
O script é chamado da seguinte forma: ./script.pl "'Nome Completo', 'Idade'" "'Joaozinho da Silva', 'Mariazinha Oliveira'" "18, 20" Onde áspas duplas delimitam cabeçalho, coluna A e coluna B respectivamente.
O trecho de código que interessa aqui é:
my $cabecalho = [ @ARGV[0] ];
my $dados = [
[ @ARGV[1] ],
[ @ARGV[2] ],
];
Em perl, como se sabe, a variável especial ARGV armazena parâmetros passados externamente.
O script.pl executa sem erros e sem warnings, mas o PROBLEMA é que a planilha é gerada assim:
'Nome Completo', 'Idade' 0
'Joaozinho da Silva', 'Mariazinha Oliveira' 18, 20
0 0
0 0
Ou seja, foi interpretada como uma célula literalmente cada um dos 3 parâmetros passados.
O curioso é que se eu informar manualmente no script, a planilha é gerada corretamente:
my $cabecalho = [ 'Nome Completo', 'Idade' ];
my $dados = [
[ 'Joaozinho da Silva', 'Mariazinha Oliveira' ],
[ 18, 20 ],
];
Alguém sabe como resolver isso ou por que está acontecendo isso?