根据PerlDoc,您可以将打开的文件定向到标量变量www.example.comhttps://perldoc.perl.org/functions/open#Opening-a-filehandle-into-an-in-memory-scalar
我试图确定是否可以将这种方法用于词法域中持久化的临时文件。我做了以下测试:
my $memfile;
my $filename=\$memfile;
open (OUT, ">", $filename);
print OUT "some data\n";
close (OUT);
我希望以后能够从标量中读取;例如:
open (IN, "<", $filename);
while (my $in=<IN>)
{
print "$in\n";
}
close (IN);
这不起作用,所以我是疯了还是有一个正确的方法来做到这一点,所以它确实工作?
1条答案
按热度按时间rm5edbpk1#
我们确实可以打开一个变量的文件句柄,并写入它;然后我们可以像使用其他变量一样使用它
一个 * 可以 * 打开变量引用的文件句柄来阅读,就像问题中那样,但这通常不是必需的(一个可能的用法是,如果我们想保持写 * 和读 *,这样它就可以在文件/变量之间改变,仅仅通过改变
open
语句)。这也适用于另一“层”变量,就像问题中的那样,
也可以再次打开
$file
的文件句柄进行阅读。请注意,
$fhv
不是一个非常合适的文件句柄,一些文件句柄的使用将不起作用;参见X1 E0 F1 X的一个例子。