1

私は次のようなリストを持っています

1,2,3
11,12,14
1,6,8

これらの数値をどのように分割すればよいですか

1
2
3
11
12
14
1
6
8

私は試した

@num=(1,2,3
      11,12,14
      1,6,8);
$splitnum=$splitnum.','.$num;

しかし、うまくいきませんでした。私を助けてください。

ありがとう

4

2 に答える 2

5

その代入は perl で構文エラーを引き起こすため、別の言語を考えているに違いありません。文字列を引用することで簡単に修正できます。

my @num = ("1,2,3",
           "11,12,14",
           "1,6,8");

あなたの他の行が何を意味するのかわかりませんが、それでも間違っています。$num@numは perl の 2 つの異なる変数であり、互いに何の関係もありません。

あなたができることはこれです:

@num = map split(/,/), @num;

map各行を@numカンマで分割し、リストを返します。

いつも入れるべき

use strict;
use warnings;

すべての perl スクリプトで。間違いはありますが、間違いを避けるように教えてくれます。それらを使用しないことは非常に悪い考えです。ヘルメットをかぶる代わりに目隠しをして頭を保護するようなものです.

于 2012-06-22T06:55:33.990 に答える
1

まず、split文字列(配列ではなく)を分割してリストを返します。したがって、コードは次のようになります。

my $str1="1,2,3,11,12,14,1,6,8"; 

my @num=split ',',$str1;

my $str2=join ' ',@num;

print $str2;

または

正規表現も使用できます$str=~s/,/ /gm;

于 2012-06-22T06:50:56.800 に答える