Perl 将数组哈希转储到文件
如何将数组散列转储到文件中 每个哈希键是文件夹的名称,数组是文件夹中列出的所有文件的名称 这是我正在做的Perl 将数组哈希转储到文件,perl,Perl,如何将数组散列转储到文件中 每个哈希键是文件夹的名称,数组是文件夹中列出的所有文件的名称 这是我正在做的 open OUTFILE, "> output.txt" or die $!; foreach my $key (keys %folder_structure) { print OUTFILE "$key\n"; foreach my $line (@{$folder_structure{$key}}) { print OUTFILE "
open OUTFILE, "> output.txt" or die $!;
foreach my $key (keys %folder_structure) {
print OUTFILE "$key\n";
foreach my $line (@{$folder_structure{$key}}) {
print OUTFILE "$line\n";
}
}
close OUTFILE;
如果您对输出格式没有任何特定要求,最简单的方法是使用Data::Dumper:
use strict;
use Data::Dumper;
open OUTFILE, "> output.txt" or die $1;
print OUTFILE Dumper \%folder_structure;
close OUTFILE;
Edit:根据注释,Dumper
被传递到散列的引用,而不是散列本身
Data::Dumper模块有一些用于控制输出的设置,您可以在其上阅读。该模块自v5.8版以来就包含在Perl core发行版中,也可以从CPAN获得,它的设计允许您“冻结”和“解冻”复杂的数据结构,将它们保存到文件中,然后检索它们
use Storable;
my %structure = (foo => 1, bar => 3);
store(\%structure, 'output.storable');
要将其检索回内存,请执行以下操作:
my %structure = %{retrieve('output.storable')};
或者更清楚地说:
my $structure_hashref = retrieve('output.storable');
my %original_structure = %{$structure_hashref};
必须将hashref作为参数提供给转储程序
Dumper\%folder\u structure
如果使用哈希引用,Data::Dumper的输出肯定会更容易理解。但是我认为你说你“必须”使用一个是太夸张了。@davorg:你是对的,我应该说:你应该给…
。英语不是我的母语。