一个常见的方法是在文件名里使用进程IP或者当前时间。但是,如果你需要多个临时文件,这种命名方式可能并不能真正保证文件名的唯一性。你可能需要检测该文件是否存在,如果存在的话,就在其名称上加入一个计数器。这并不困难,但是你所付出的努力可能要比扩展这个工作所需要的努力更多。
另一种简单得多的方式是使用IO::File模块的new_tmpfile方法为你的临时文件创建唯一的文件名。这个类方法会创建一个临时文件,读和写的时候需要打开这个临时文件,然后将文件句柄返回给它。它的一个很有用的特性是:如果操作系统支持它,那么文件就会在创建之后取消链接,但是仍保持打开。结果就是,文件在使用的时候是隐藏的。在下面的例子里,这个方法的使用是极其简单的:
useIO::File;
$fh = IO::File->new_tmpfile()
or die "Temporary file creation failed: $!";