-1

这看起来很简单,但无论是 google 搜索还是 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出于某种原因拆分输出。

非常感谢。

迈克尔

4

2 回答 2

6

您的代码可以在我的计算机上运行,​​这也许是人们避免使用外部工具的原因之一。当然,您可以使用本机 Perl 做到这一点:

my $lc = 0;
open my $file, "<", "input" or die($!);
$lc++ while <$file>;
close $file;
print $lc, "\n";
于 2013-06-06T00:57:16.953 回答
2

这避免了拆分问题,但是像这样使用 cat 可能会被认为是资源浪费。

$B = `cat $fileB | wc -l`;

cat filename | wc -l只是产生多行——wc当它从管道读取到标准输入时,无法获得文件名。

@array=split ' ', $B 将为您工作。

于 2013-06-06T00:55:42.197 回答