我有一个像
这样的清单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;
但它不起作用。请帮帮我。
由于
答案 0 :(得分:5)
您必须考虑另一种语言,因为该分配将导致perl中的语法错误。您可以通过引用字符串轻松修复它。
my @num = ("1,2,3",
"11,12,14",
"1,6,8");
我不知道你的其他线路意味着什么,但它仍然是错误的。 $num
和@num
是perl中的两个不同变量,彼此无关。
你可以做的是:
@num = map split(/,/), @num;
map
会将@num
中的每一行拆分为逗号并返回列表。
你应该总是把
use strict;
use warnings;
在所有perl脚本中。会有错误,但他们会教你避免错误。不使用它们是一个非常糟糕的想法,它就像戴着眼罩而不是戴上头盔来保护你的头部。
答案 1 :(得分: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
;