我目前正在for循环中打印一个结果:
for (@data1, @data2, @data3) {
print "$_" . " ";
}
相反,我希望安静地处理循环,并将for循环的整个结果存储为变量,然后单独打印,如下所示:
print "$forloopresult";
我该怎么做?谢谢!
答案 0 :(得分:3)
对于这种情况,我只使用join
:
my $foo = join(' ', @data1, @data2, @data3);
print "$foo "; # space at the end to emulate your for loop
答案 1 :(得分:1)
只需声明变量并在每一步附加数据:
my $result = "";
for (@data) {
$result = $result."$_ ";
}
print $result;
答案 2 :(得分:0)
如果您打算保留print
语句,但是将文本转到变量而不是控制台,那么这也是可能的。如果传递对该变量的引用而不是文件名
看起来像这样。我已声明$forloopresult
并将\$forloopresult
作为open
的第三个参数传递。 Data::Dump
的输出显示结果
use strict;
use warnings;
use Data::Dump;
my @data1 = qw/ a b c /;
my @data2 = qw/ aa bb cc /;
my @data3 = qw/ aaa bbb ccc /;
my $forloopresult;
open my $fh, '>', \$forloopresult or die $!;
for ( @data1, @data2, @data3 ) {
print $fh "$_ ";
}
dd $forloopresult;
"a b c aa bb cc aaa bbb ccc "