IO::File->new_tmpfile返回指向文件的IO :: File对象。是否可以在Windows上获取文件位置?
答案 0 :(得分:7)
您可以使用File::Temp:
来实现这一目标my $fh = File::Temp->new();
my $fname = $fh->filename;
如果是IO :: File,则无法获取临时文件名。 IO :: File的源显示只有OutputStream存储在对象中:
void
new_tmpfile(packname = "IO::File")
const char * packname
PREINIT:
OutputStream fp; ## it doesn't look like you can get file name out of this
GV *gv;
CODE:
#ifdef PerlIO
fp = PerlIO_tmpfile();
#else
fp = tmpfile();
#endif
...
据我所知,并非所有流都有与之关联的文件名(例如管道)。