我有一个不寻常的要求。我有一个很大的config / perl文件,我希望在运行之前更改一个变量的值。为了避免手动查找变量并更改其值,我想编写一个perl脚本来更改变量的名称。如果不解析大的perl文件的每一行,创建临时副本并覆盖旧文件,是否可以做到这一点。
答案 0 :(得分:1)
有些东西正在解析这个文件,对吧?给它一个要替换的东西的列表,你可以让它只在它需要时进行替换。这样可以避免大量的预启动开销,如果配置文件稀疏使用,将导致整体运行速度更快。
所以只需让读取它的东西寻找某些模式替换它们和文件(或者在命令行或环境变量中传入,或者......)它应该使用的值并从那里开始。
如果你无法控制解析器,那就没什么可做的了。您可以一次性预处理配置文件以确定替换所需的位置并编写更快的处理器,因为它不必对正则表达式执行任何字符串解析,只需移动一堆字节就像您的计算机可以将它们移动到具有替换的新文件。