这看起来非常简单但谷歌搜索和stackoverflow搜索都没有改变。人们有不这样做的原因吗?对不起,如果我错过了什么。
我试过
$B = `wc -l $fileB`;
print "$B\n";
@B_array = split /\s+/, $B; #try to split on whitespace
foreach my $item (@B_array) {
print "$item\n";
}
但由于某种原因,这不会分割wc -l
的输出。
非常感谢。
迈克尔
答案 0 :(得分:6)
您的代码在我的计算机上运行,也许这是人们避免使用外部工具的原因之一。你当然可以使用本地Perl来做到这一点:
my $lc = 0;
open my $file, "<", "input" or die($!);
$lc++ while <$file>;
close $file;
print $lc, "\n";
答案 1 :(得分:1)
这可以避免分裂问题,但使用像这样的猫可以被认为是浪费资源。
$B = `cat $fileB | wc -l`;
cat filename | wc -l
只生成许多行 - wc
无法获取文件名,因为它正在从管道读取到stdin。
此外@array=split ' ', $B
也适合您。