2015-10-20 75 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