Domanda

Ho una stringa che con diverse parti separate da schede:

 Hello\t2009-08-08\t1\t2009-08-09\t5\t2009-08-11\t15

Voglio dividerlo solo nella prima scheda, in modo che " Ciao " finisce in $ k e il resto finisce in $ v . Questo non funziona del tutto:

my ($k, $v) = split(/\t/, $string);

Come posso farlo?

È stato utile?

Soluzione

Per ottenerlo, devi utilizzare il terzo parametro per split () , che fornisce alla funzione un numero massimo di campi da suddividere (se positivo):

my($first, $rest) = split(/\t/, $string, 2);

Altri suggerimenti

No. Ti darà i primi due oggetti e getterà il resto. Prova questo:

my ($k, $v) = split(/\t/, $string, 2);

Un'altra opzione sarebbe quella di usare una semplice regex.

my($k,$v) = $str =~ /([^\t]+)\t(.+)/;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top