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?

Foi útil?

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
scroll top