如何写出或读入数组的Perl哈希?
发布时间:2020-12-15 23:29:30 所属栏目:大数据 来源:网络整理
导读:我在Perl中有一个程序我正在处理我需要多个键的位置,以及为每个键赋予多个值的方法,并通过能够读取它们并将它们写入外部文件来实现,具体取决于是否键匹配人输入的标准输入.我查看了几个站点并发现信息在读取数组哈希时有些有用,但没有写出来,我还需要能够在
我在Perl中有一个程序我正在处理我需要多个键的位置,以及为每个键赋予多个值的方法,并通过能够读取它们并将它们写入外部文件来实现,具体取决于是否键匹配人输入的标准输入.我查看了几个站点并发现信息在读取数组哈希时有些有用,但没有写出来,我还需要能够在外部文件中添加到数组中.
这可能吗? 编辑: 解决方法
查看
Data::Dumper.
例如,这个微观脚本: #!/bin/perl -w use strict; use Data::Dumper; my(%hash); $hash{key1} = [ 1,"b","c" ]; $hash{key2} = [ 4.56,"g","2008-12-16 19:10 -08:00" ]; print Dumper(%hash); 生成此输出,可以清楚地编辑: $VAR1 = { 'key2' => [ '4.56','g','2008-12-16 19:10 -08:00' ],'key1' => [ 1,'b','c' ] }; 还可以对其进行评估以将数据读回程序. 扩展示例以显示读入和打印输出…请注意,代码位于两个主要块中,块之间唯一的共同变量是文件名. #!/bin/perl -w use strict; use Data::Dumper; use FileHandle; my $file = "data.out"; { my(%hash); $hash{key1} = [ 1,"c" ]; $hash{key2} = [ 4.56,"2008-12-16 19:10 -08:00" ]; my $str = Data::Dumper->Dump([ %hash ],[ '$hashref' ]); print "Output: $str"; my($out) = new FileHandle ">$file"; print $out $str; close $out; } { my($in) = new FileHandle "<$file"; local($/) = ""; my($str) = <$in>; close $in; print "Input: $str"; my($hashref); eval $str; my(%hash) = %$hashref; foreach my $key (sort keys %hash) { print "$key: @{$hash{$key}}n"; } } 该脚本的输出是: Output: $hashref = { 'key2' => [ '4.56','2008-12-16 19:10 -08:00' ],'key1' => [ 1,'c' ] }; Input: $hashref = { 'key2' => [ '4.56','c' ] }; key1: 1 b c key2: 4.56 g 2008-12-16 19:10 -08:00 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |