Como posso dividir uma string em apenas duas peças com Perl?
Pergunta
I tem uma cadeia que com várias peças separadas por separadores:
Hello\t2009-08-08\t1\t2009-08-09\t5\t2009-08-11\t15
Eu quero dividi-lo apenas na primeira guia, de modo que "Olá" acaba em $k
e e descansar acaba em $v
. Isso não funciona muito bem:
my ($k, $v) = split(/\t/, $string);
Como posso fazer isso?
Solução
A fim de conseguir isso, você precisará usar o terceiro parâmetro para split()
, o que dá a função de um número máximo de campos de dividir em (se positivo):
my($first, $rest) = split(/\t/, $string, 2);
Outras dicas
No. Ele vai te dar os dois primeiros itens e atirar o resto. Tente isto:
my ($k, $v) = split(/\t/, $string, 2);
Outra opção seria usar uma regex simples.
my($k,$v) = $str =~ /([^\t]+)\t(.+)/;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow