Come posso dividere una stringa in solo due parti con Perl?
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?
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