在Perl中,如何将转储程序的输出写入文件?

在Perl中,如何将转储程序的输出写入文件?,perl,debugging,dump,data-dumper,Perl,Debugging,Dump,Data Dumper,如何将转储写入文件?请不要忘记,您可以将文件句柄指定为print,如中所示 print $LOG Dumper( \%some_complex_hash ); 或使用: 进一步思考:您可能希望养成使用以下内容的习惯: warn Dumper( \%some_complex_hash ); 以及在调用脚本时将标准错误重定向到文件(如何执行取决于shell)。例如: C:\Temp> sdf.pl 2>dump 这个问题有点不清楚,但你在找这样的东西吗 open my $FH,

如何将转储写入文件?

请不要忘记,您可以将文件句柄指定为
print
,如中所示

print $LOG Dumper( \%some_complex_hash );
或使用:

进一步思考:您可能希望养成使用以下内容的习惯:

warn Dumper( \%some_complex_hash );
以及在调用脚本时将标准错误重定向到文件(如何执行取决于shell)。例如:

 C:\Temp> sdf.pl 2>dump

这个问题有点不清楚,但你在找这样的东西吗

open my $FH, '>', 'outfile';
print $FH Dumper(\%data);
close $FH;
以后可以使用还原数据。

使用


Dumper()
只需输出一个字符串,就可以像其他字符串一样用于文件(见下文)。我有巨大的转储值,所以我需要将其保存到文件中并仔细查看。@JACK我同意你的观点我很好奇:file::Slurp在这里有什么好处?如果我只想将一个复杂的数据结构转储到一个文件中进行调试,它比open/print/close更独立:没有文件句柄或错误消息需要处理。@SinanÜnür$LOG应该如何使用。$LOG是否应该指向打开的文件($LOG,'>','file.txt')@patz
$LOG
是一个文件句柄,正如我前面明确指出的那样。对于以后的存储和恢复,Storable比Data::Dumper+eval要好得多:Telemachus是正确的。Storable、YAML、JSON、DBM::Deep或其他一百万个序列化模块中的任何一个都比Data::Dumper+eval更好。
open my $FH, '>', 'outfile';
print $FH Dumper(\%data);
close $FH;
print FILE Data::Dumper->Dump($object);