gpt4 book ai didi

perl - 如何写出或读入 Perl 散列的数组?

转载 作者:行者123 更新时间:2023-12-03 18:17:09 24 4
gpt4 key购买 nike

我在 Perl 中有一个程序,我正在研究需要多个键的地方,以及一种为每个键提供多个值的方法,然后根据是否读取它们并将它们写入外部文件key 匹配用户输入标准输入的内容。我浏览了几个站点,发现在读取数组的哈希值方面有些有用的信息,但不能将它们写出来,而且我还需要能够在外部文件中添加到数组中。

这可能吗?

编辑:
有没有办法可以用初学者 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'
]
};

它也可以被评估以将数据读回程序。

扩展示例以显示读入和打印出...请注意,代码位于两个主要 block 中, block 之间唯一的共同变量是文件名。
#!/bin/perl -w
use strict;
use Data::Dumper;
use FileHandle;

my $file = "data.out";

{
my(%hash);

$hash{key1} = [ 1, "b", "c" ];
$hash{key2} = [ 4.56, "g", "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',
'g',
'2008-12-16 19:10 -08:00'
],
'key1' => [
1,
'b',
'c'
]
};
Input: $hashref = {
'key2' => [
'4.56',
'g',
'2008-12-16 19:10 -08:00'
],
'key1' => [
1,
'b',
'c'
]
};
key1: 1 b c
key2: 4.56 g 2008-12-16 19:10 -08:00

关于perl - 如何写出或读入 Perl 散列的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/373520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com