gpt4 book ai didi

perl - 哈希中每个键的不同类型的值

转载 作者:行者123 更新时间:2023-12-02 07:37:46 28 4
gpt4 key购买 nike

我在 Google 中搜索,但我没有发现任何有用的东西。

尽管有很多 Perl 教程,但我没有找到任何教程提到每个键都有不同值的散列?这种事情在 Perl 中可能吗?

例如,是否可以有一个具有 2 个键 (a, b) 的散列,其中:

$myhash{"a"}=1;
$myhash{"b"}=[ 'hamnet', 'shakespeare', 'robyn', ];

以上是否可行?


我试过这个:

#!/usr/bin/perl

use strict;
my %x;

$x{"a"}="b";
$x{"b"}=['c','d'];

foreach (keys %x)
{
print $_."\n";
print "$x{$_}";
}

但它正在输出:

a
bb
ARRAY(0x1ece50)

我对如何访问这个散列的元素感到困惑。

我想告诉你的是,虽然我懂一点 Perl,但我对哈希完全是个新手。


好的,我发现了一件事——要访问散列中的数组,我需要做:

@{$x{"b"}}

但是正如我已经告诉过你的,散列的值可以是数组或标量值,所以为了访问上面的散列,我需要首先识别值的类型然后访问它!我怎样才能做到这一点?也就是说,我如何确定键的值是标量、数组还是散列?

最佳答案

"Even though there are many tutorials for Perl, I did not find any tutorial which would mention a hash which has different values for each and every key? Is such a thing possible in Perl?"

您可能已经尝试查看 tutorials included in your Perl distribution ,其中包括 Perl Data Structures Cookbook (perldsc) .它包括关于 "More Elaborate Records" 的一章,它给出了有关如何创建和使用其值具有不同类型的哈希的示例。

"But as I have told you, the value of a hash can be either an array or a scalar value, so for accessing the above hash, I need to initially identify the type of the value and then access it! How can I do this? That is, how can I identify whether a value for a key is either a scalar, an array or a hash?"

由于您似乎不熟悉 references 的用法和 ref接线员,您可能还想看看 Mark's very short tutorial about references (perlreftut) .

请注意,所有这些教程(以及更多)都已经包含在您的 Perl 发行版中,您可以通过键入例如访问它们

perldoc perlreftut

在命令行上。(在某些系统上,您可能需要安装一个额外的包来启用 perldoc 命令。如果您打算进行任何 Perl 编程,强烈建议这样做。)

关于perl - 哈希中每个键的不同类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414652/

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