タブで区切られたいくつかの部分を持つ文字列があります。
Hello\t2009-08-08\t1\t2009-08-09\t5\t2009-08-11\t15
最初のタブでのみ分割して、「Hello」が$k
になり、残りが$v
になるようにします。これは完全には機能しません。
my ($k, $v) = split(/\t/, $string);
どうやってやるの?
これを取得するには、3番目のパラメーターを使用して split()
にする必要があります。これにより、関数に分割するフィールドの最大数が与えられます(正の場合)。
my($first, $rest) = split(/\t/, $string, 2);
いいえ。最初の2つのアイテムを提供し、残りを投げます。これを試して:
my ($k, $v) = split(/\t/, $string, 2);
別のオプションは、単純な正規表現を使用することです。
my($k,$v) = $str =~ /([^\t]+)\t(.+)/;