Perl 在下面的代码中它是什么样的数据结构,您将如何引用第一个元素?
在下面的代码段中创建了什么样的数据结构,以及如何引用第一个元素Perl 在下面的代码中它是什么样的数据结构,您将如何引用第一个元素?,perl,Perl,在下面的代码段中创建了什么样的数据结构,以及如何引用第一个元素 my $value= { 1 => "Apple", 2 => "Orange", 3 => "Banana" }; 我们为什么使用=>,你能解释一下吗 根据我的说法,上面的代码是无效的,它应该是我的%值,然后它变成了散列。它是散列引用。看 没有“first”元素,因为哈希没有固定的顺序。您可以使用$value->{“1”}访问1的值 您使用(=>)是因为: 它会自动在LHS周围加引号 它提供了一个强有力的视觉
my $value= { 1 => "Apple", 2 => "Orange", 3 => "Banana" };
我们为什么使用=>
,你能解释一下吗
根据我的说法,上面的代码是无效的,它应该是我的
%值
,然后它变成了散列。它是散列引用。看
没有“first”元素,因为哈希没有固定的顺序。您可以使用$value->{“1”}
访问1
的值
您使用(=>
)是因为:
- 它会自动在LHS周围加引号
- 它提供了一个强有力的视觉指示器,指示哪些数据位是键,哪些是值
散列引用是标量值,因此需要
$
%value
如果您直接存储哈希,那么将使用()
而不是{}
这已经有一段时间了,但是这不就是对哈希的引用吗?如中所述,使用%$value
?解除引用可能会得到您可以Ellobrate“根据我的说法,上述代码无效…”好吧,您错了。它是散列,因为它有花括号和键值对。如果您将%value
放在左侧,则它将是错误的。您可以将undef
存储在密钥的插槽中,该密钥是匿名hashref->$value{'HASH(0xABCDEF999)}=undef
HI@quentin,当我尝试打印下面的内容时,它返回我一个错误打印“$value{'1'}”\n”@我是新手,当然是。我不是说你是这样访问值的。试着用这个$value->{'1'}检查它是否有效?检查我下面的o/p#/usr/bin/perl my$value={1=>“苹果”,2=>“橙色”,3=>“香蕉”};打印$value->{“1”};root@ubuntu-OptiPlex-390:~/sammy/new#/q1.pl苹果root@ubuntu-OptiPlex-390:~/sammy/new#
@Саа27,是的。如果在此期间哈希没有更改,则哈希的后续迭代(键/值/每个)将返回与哈希的先前迭代相同的顺序。e、 g.@b{keys(%a)}=值(%a)
是将一个散列的元素添加到另一个散列的好方法。这是有案可查的。