使用perl s /.../.../ e打印到文件描述符中

时间:2019-02-05 09:33:55

标签: perl

我在使用以下perl代码时遇到错误:

#!/usr/bin/perl
open $fh, '>', 'myfile.txt' or die;
s|(.*)|print $fh "Hello",$1," how are you"|e;
close $fh or die
  

在./script.pl第3行的“ $ fh“ Hello”“附近找到了运算符期望的字符串
      (“ Hello”之前缺少运算符吗?)

我再次使用s|(.*)|...|e来写字符串的开头,例如Hello Hello

文件myfile.txt的预期输出是

  

你好,你好吗?

有没有一种方法可以使它以实际操作运行?

还是我必须以其他方式更改s|(.*)|...|e操作?

1 个答案:

答案 0 :(得分:5)

有趣的是,有效的方法是将文件句柄括在大括号中:

s/(.*)/print {$fh} "Hello",$1," how are you"/e;

无论如何始终使用它们是一个好习惯。