如何使用Perl将字符串拆分为两个部分?

biz*_*nez 13 perl split

我有一个字符串,其中有几个部分由制表符分隔:

 Hello\t2009-08-08\t1\t2009-08-09\t5\t2009-08-11\t15
Run Code Online (Sandbox Code Playgroud)

我想只在第一个标签上拆分它,以便"Hello"结束$k,并且休息结束$v.这不太有效:

my ($k, $v) = split(/\t/, $string);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Chr*_*utz 39

为了得到这个,你需要使用第3个参数来split()给函数分配最大数量的字段(如果是正数):

my($first, $rest) = split(/\t/, $string, 2);
Run Code Online (Sandbox Code Playgroud)

  • 这将在$ k中捕获"date_1",在$ v中捕获"value_1\tdate_2\tvalue_2\tdate_3\tvalue_3 ...".有关更多信息,我链接到`split()`函数的perldoc参考页面 - 它将解释它如何在你想要的所有细节中工作.我建议你看看.Perldoc非常有用. (2认同)

Jer*_*que 7

不会.它将为您提供前两项并抛弃其余部分.试试这个:

my ($k, $v) = split(/\t/, $string, 2);
Run Code Online (Sandbox Code Playgroud)