加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何写出或读入数组的Perl哈希?

发布时间:2020-12-15 23:29:30 所属栏目:大数据 来源:网络整理
导读:我在Perl中有一个程序我正在处理我需要多个键的位置,以及为每个键赋予多个值的方法,并通过能够读取它们并将它们写入外部文件来实现,具体取决于是否键匹配人输入的标准输入.我查看了几个站点并发现信息在读取数组哈希时有些有用,但没有写出来,我还需要能够在
我在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读