目前我正在从文件中读取行,将其删除,并用空格替换制表符,如下所示:
open( my $xpfh, '<', $xpathfile ) or die "cannot open file $xpathfile";
chomp( my @xplines = <$xpfh> );
close $xpfh;
foreach my $xpline (@xplines) {
$xpline =~ s/\t/ /g;
...
正如您所看到的,chomping发生在foreach循环之外,但每次迭代都会发生替换。如何将这个动作带到foreach循环之外,更接近于chomping?我问,因为我认为这比每次迭代运行正则表达式要快。无论哪种方式,在语法上更令人愉快的是,所有结构操作都在同一个块中发生。
答案 0 :(得分:2)
我可能会这样做没有将文件压入数组,然后迭代数组:
while ( <$xpfh> ) {
chomp;
s/\t/ /g;
print;
}
如果您确实需要该阵列的原因有其他原因:
s/\t/ /g for @xplines;