mob*_*mob 20
这意味着您可以使用文件句柄来写入和读取标量变量.
my $var = "";
open my $fh, '>', \$var;
print $fh "asdf";
close $fh;
print $var; # asdf
Run Code Online (Sandbox Code Playgroud)
最终,这只是另一种方法
$var .= "asdf"
Run Code Online (Sandbox Code Playgroud)
但是有些上下文比使用字符串操作范例更方便或更适合使用文件句柄范例.
例如,从这段代码开始:
open my $fh, '>', $logfile;
...
print $fh $some_message_to_be_logged;
... 500 more print $fh statements ...
close $fh;
Run Code Online (Sandbox Code Playgroud)
但你知道吗?现在我宁愿在标量变量中记录我的日志消息,也许我可以搜索它们,在它们写入磁盘之前对它们进行操作等等.我可以将所有print语句都改为
$logvar .= $some_message_to_be_logged
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,更改open语句更方便.
open my $fh, '>', \$logvar
Run Code Online (Sandbox Code Playgroud)