web-dev-qa-db-ja.com

Perlで文字列を2つの部分に分割するにはどうすればよいですか?

タブで区切られたいくつかの部分を持つ文字列があります。

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

最初のタブでのみ分割して、「Hello」が$kになり、残りが$vになるようにします。これは完全には機能しません。

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

どうやってやるの?

16
biznez

これを取得するには、3番目のパラメーターを使用して split() にする必要があります。これにより、関数に分割するフィールドの最大数が与えられます(正の場合)。

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

いいえ。最初の2つのアイテムを提供し、残りを投げます。これを試して:

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

別のオプションは、単純な正規表現を使用することです。

my($k,$v) = $str =~ /([^\t]+)\t(.+)/;
1
Brad Gilbert