【问题标题】:Changing value of a variable in perl using another script使用另一个脚本在 perl 中更改变量的值
【发布时间】:2013-08-08 02:01:14
【问题描述】:

我有一个不寻常的要求。我有一个很大的 config /perl 文件,我想在运行之前在其中更改一个变量的值。为了避免手动查找变量并更改它的值,我想编写一个 perl 脚本来更改变量的名称。是否可以在不解析大 perl 文件的每一行、创建临时副本并覆盖旧文件的情况下做到这一点。

【问题讨论】:

  • 为什么不向脚本传递参数?即Getopt::Long
  • 为什么你的帖子是关于改变一个变量的名字,而标题却是关于改变一个变量的值?
  • @kjprice - 大的 perl 文件更像是一个配置文件。不完全是 perl 文件。对不起,我应该提到它
  • @mob - 它正在改变一个变量的值。我用更好的方式改写了。谢谢!
  • 有关十几种不同的方法,请参阅stackoverflow.com/a/2308092/176646

标签: perl automation


【解决方案1】:

有些东西正在解析这个文件,对吧?给它一个要替换的东西的列表,你可以让它只在需要时进行替换。这避免了很大的启动前开销,如果配置文件被稀疏使用,将导致更快的整体运行。

因此,只需让读取它的东西寻找某些模式来替换,并在一个文件(或在命令行或环境变量中传递,或者......)寻找它应该使用的值并从那里开始。

如果您无法控制解析器,那就没什么可做的了。您可以一次性预处理配置文件以确定替换需要的确切位置并编写更快的处理器,因为它不必对正则表达式进行任何字符串解析,只需移动一堆字节即可您的计算机可以将它们移动到替换后的新文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多