我有一个Perl脚本,可以将哈希转储到" output.txt'文件。问题是,每次我运行这个脚本时,都会输出相同的< output.txt'文件被覆盖。如何生成新的' .txt'每次运行脚本时都会生成文件,以便每次运行时都将结果放在单独的文件中?
我现在在perl脚本的末尾有这样的东西:
print Dumper( \%data );
open my $temp, '>', 'output.txt' or die $!;
print $temp Dumper \%data;
close $temp;
答案 0 :(得分:2)
您可以使用时间戳作为文件名的一部分。我想你的脚本每秒运行的次数不会超过一次。
因此,而不是固定'output.txt'
使用
my $time = time; # seconds since 1970-01-01
my $filename = "output_$time.txt"; # output_1427737784.txt
或
use DateTime;
my $now = DateTime->now;
my $filename = "output_$now.txt"; # output_2015-03-30T17:49:16.txt
如果您需要更多文件名,或者只是不喜欢时间戳,File::Temp
即可。它不仅为您创建一个随机文件名,而且还立即打开文件(安全防止死锁)并返回文件句柄。
use File::Temp 'tempfile';
my ($fh, $filename) = tempfile(); # replaces open()