) { -6ren">
gpt4 book ai didi

perl - 使用 Perl 的菱形和就地编辑运算符对目录中的多个文件进行就地编辑

转载 作者:行者123 更新时间:2023-12-04 22:49:53 25 4
gpt4 key购买 nike

我正在尝试使用 Perl 的就地编辑运算符 $^I 就地编辑一堆文本文件。我使用菱形 (<>) 运算符遍历目录,如下所示:

$^I = ".bak";

@ARGV = <*.txt>;

while (<>)
{
s/((?:^|\s)-?)(0+)(?=\s|$)/$1.$2/g;
print;
}

这完美地工作并且完成了我需要它做的工作。但是,如果我的 @ARGV 已经填充了程序所需的其他一些数据怎么办?我尝试执行以下操作:
$^I = ".bak";

my @files = <*.txt>;

while (<@files>)
{
s/((?:^|\s)-?)(0+)(?=\s|$)/$1.$2/g;
print;
}

但它不起作用。我在这里想念什么?我不能使用我的 $ARGV,因为它包含其他数据并且不能将它与文件匹配模式混为一谈。

有什么建议?

谢谢!

最佳答案

你可以给@ARGV带有 local 的临时值关键词:

{
local @ARGV = <*.txt>;
while (<>) {...}
} # @ARGV gets the old value back

关于perl - 使用 Perl 的菱形和就地编辑运算符对目录中的多个文件进行就地编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com