Perl脚本中的Perl内联替换

时间:2010-12-18 21:59:00

标签: perl

我正在尝试使用内联替换编写perl脚本。我找到了这个脚本示例,但不知道如何使用它,因为我不知道如何指定文件和处理程序?

$^I = '.bak'  # Call for in-place editing; make backups with a .bak suffix

while (<>) 
{
  s/foo/bar/
  print;
}

1 个答案:

答案 0 :(得分:4)

<>是一个特殊的文件句柄。

  

特殊文件句柄:&lt;&gt;

     

与默认变量一样,特殊文件句柄 - 写为&lt;&gt;是添加语言的捷径,使程序更容易编写。特殊文件句柄将所有命令行参数视为文件名,并依次打开每个参数。如果没有命令行参数,则打开并从STDIN读取。根据UNIX约定,如果“ - ”作为命令行参数给出,它将打开STDIN来代替文件。

Source

设置$^I变量可以启用就地编辑 - 换句话说,直接修改文件。

要使用此脚本,您可以执行以下操作:

perl yourscript.pl somefile.txt