【发布时间】:2019-05-09 06:23:44
【问题描述】:
我是学习 perl 的初学者。
我在这里要做的是拆分数组@value 并将其插入到一个新数组中。我的问题是,我不知道如何让我的编码循环运行并获得我想要的结果。
是否有可能使用此方法获得所需的结果,或者是否有任何其他替代方法/方法可以获得相同的结果?
我的代码如下;
my @separated = ();
my @separated1 = ();
my @separated2 = ();
my @separated3 = ();
my $counter = 0;
my @values = "aaa 111 AAA bbb 222 BBB ccc 333 CCC ddd 444 DDD";
foreach (@values) {
my @separated = split(' ', $_);
push @separated1, $separated[0];
push @separated2, $separated[1];
push @separated3, $separated[2];
}
$counter++
print "separated1 = @separated1\n";
print "separated2 = @separated2\n";
print "separated3 = @separated3\n";
我得到的结果;
分隔1 = aaa
分隔2 = 111
分隔3 = AAA
期望的结果;
separated1 = aaa bbb ccc ddd
分隔2 = 111 222 333 444
separated3 = AAA BB CCC DD
【问题讨论】:
-
实际上你不使用你的 $counter 变量。你增加它,但永远不要访问它。我猜你想用它作为你的数组的索引。
-
这一行:
my @values = "aaa 111 AAA bbb 222 BBB ccc 333 CCC ddd 444 DDD"... 将一个标量值分配给一个数组。它有效地将标量值放入@value数组的第一个槽中。你可以直接在这里做一个split:my @values = split / /, "aaa 111 AAA bbb 222 BBB ccc 333 CCC ddd 444 DDD";一旦这个到位,剩下的就是一次取3个值等等。
标签: arrays regex perl split push