Perl日志消息意外写入dest文件

时间:2018-12-14 09:57:13

标签: perl file-io

这是用于将数据写入文件的测试代码段,

open(OUT_FILE, ">", $destfile)||die("can not open file!");
select(OUT_FILE);
binmode(OUT_FILE);
printf "test file name:\t'%s'\n", $destfile;
writebinary(OUT_FILE,pack('H*', $name))

datatest.txt中附加了日志消息“测试文件名:datatest.txt” 怎么了?

1 个答案:

答案 0 :(得分:3)

您已经select设置了文件句柄<textarea>#email.panel-control将使OUT_FILEselect的输出转到选定的句柄,而不是默认选择的print

将呼叫转移到printf。您不需要它。


请注意,您的代码是非常老式的。考虑到词法文件句柄和适当的错误处理,可以将其重写如下:

STDOUT

您当然没有告诉我们select的作用。您可能需要在那里进行更改。但是请记住,全局文件句柄是全局的,程序的其他部分可能会与您的open my $fh, '>', $destfile or die "Can't open file '$destfile': $!"; binmode $fh; printf "test file name:\t'%s'\n", $destfile; writebinary($fh, pack('H*', $name)); 混淆。