我遇到以下perl代码的错误:
#!/usr/bin/perl
open $fh, '>', 'myfile.txt' or die;
s|(.*)|print $fh "Hello",$1," how are you"|e;
close $fh or die
Run Code Online (Sandbox Code Playgroud)
字符串找到运算符在./script.pl第3行的位置,靠近"$ fh"Hello""
(在"Hello"之前缺少运算符?)
我用s|(.*)|...|e另一次写字符串的开头就好了Hello Hello.
预期输出的文件myfile.txt是
你好,你好吗?
有没有办法让它与实际操作一起运行?
或者我必须s|(.*)|...|e以其他方式改变操作吗?
有趣的是,有效的是将文件句柄括在花括号中:
s/(.*)/print {$fh} "Hello",$1," how are you"/e;
Run Code Online (Sandbox Code Playgroud)
无论如何,总是使用它们是一个好习惯.