2015-10-20 78 views
0

如果我用-i标志调用perl,它将编辑输入文件; i.bak将使用扩展名.bak创建备份。但是这需要我在脚本中放入#!/usr/bin/perl -i,或者在命令行上明确使用perl -i如何启用/禁用perl的就地编辑功能?

我想我的脚本本身来控制是否/何时发生这种情况。有没有办法以编程方式激活这个perl特性,例如通过修改perl关于如何调用它的想法,或者通过设置一个特殊变量?

两种解决方法我已经知道:

  • 我可以调用命令行的Perl:perl -i.bak ~/bin/myscript。但我想只能输入myscript

  • 我可以从头开始就地编辑。如果没有办法触发内置版本,这是我可能会做的。

+1

您希望您正在创建的程序决定何时应该对文件进行编辑,而不是*用户?这听起来不是一个好主意。 – TLP

+0

嗯,实际上我要用命令行选项来控制它:-) – alexis

+0

因此,让我直接得到这个...你想避免使用命令行选项,以便您可以使用自己的命令行选项.... ?这很有道理。 – TLP

回答

5

请参阅perlvar中的$^I变量。

+0

完美,谢谢! – alexis

+0

我尝试过试验这一点,并试图在运行时切换就地编辑给一些有趣的结果。 – TLP

+0

@TLP也许你是在第一次ARGV阅读后才做的? – ysth