每次脚本运行时,将Perl哈希转储到新的txt文件中

时间:2015-03-30 17:45:14

标签: perl output perl-data-structures data-dumper

我有一个Perl脚本,可以将哈希转储到" output.txt'文件。问题是,每次我运行这个脚本时,都会输出相同的< output.txt'文件被覆盖。如何生成新的' .txt'每次运行脚本时都会生成文件,以便每次运行时都将结果放在单独的文件中?

我现在在perl脚本的末尾有这样的东西:

print Dumper( \%data );
open my $temp, '>', 'output.txt' or die $!;
print $temp Dumper \%data;
close $temp;

1 个答案:

答案 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()