我最终让我的脚本将我想要进行的新更改附加到文件末尾而不是实际文件中。
open (INCONFIG, "+<$text") or die $!;
@config = <INCONFIG>;
foreach(@config)
{
if ( $_ =~ m/$checker/ )
{
$_ = $somethingnew;
}
print INCONFIG $_;
}
close INCONFIG or die;
最终我想再次重写整个文本,但如果它与搜索条件匹配,则修改某些字符串。但到目前为止,它只将整个文件的另一个副本(带有更改)附加到旧文件的底部。
我知道我可以关闭该文件,并使用另一个写入文件-句柄并解析它。但希望能够了解我做错了什么,以及如何解决它。