Я хочу создать в каталоге много небольших файлов с уникальными именами из многих процессов. Теоретически имена файлов могут быть одинаковыми, так как мне это учитывать? Какой модуль мне следует использовать для этой цели? Файлы должны быть сохранены.
Возможно, вы захотите использовать File::Temp для этого.
File::Temp
($fh, $filename) = tempfile($template, DIR => $your_dir, UNLINK => 0);
Используемый пакет будет File :: Temp .
Добавить отметку времени к каждому файлу с точностью до миллисекунды:
#!/usr/local/bin/perl use Time::HiRes qw(gettimeofday); my $timestamp = int (gettimeofday * 1000); print STDOUT "timestamp = $timestamp\n"; exit;
Вывод:
timestamp = 1227593060768
Без каких-либо модулей вы можете использовать что-то вроде этого: time() . "_" . rand()
time() . "_" . rand()
$$ содержит идентификатор процесса работающей программы Perl. Поэтому его можно использовать в именах файлов, чтобы сделать их уникальными, по крайней мере, между экземплярами запущенного процесса.