我想在目录中创建许多具有来自许多进程的唯一名称的小文件。理论上文件名可能是相同的,所以我该如何解释?我应该用什么模块来达到这个目的?文件应该保留。
答案 0 :(得分:13)
您可能希望使用File::Temp
。
($fh, $filename) = tempfile($template, DIR => $your_dir, UNLINK => 0);
答案 1 :(得分:5)
为每个文件附加一个时间戳,最长为毫秒:
#!/usr/local/bin/perl
use Time::HiRes qw(gettimeofday);
my $timestamp = int (gettimeofday * 1000);
print STDOUT "timestamp = $timestamp\n";
exit;
输出:
timestamp = 1227593060768
答案 2 :(得分:5)
要使用的包是File::Temp。
答案 3 :(得分:3)
如果没有任何模块,您可以使用以下内容:time() . "_" . rand()
答案 4 :(得分:2)
$$包含正在运行的perl程序的进程ID。因此,它可以在文件名中使用,以使它们至少在正在运行的进程的实例之间是唯一的。