Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在下面的代码中它是什么样的数据结构,您将如何引用第一个元素?_Perl - Fatal编程技术网

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)
是将一个散列的元素添加到另一个散列的好方法。这是有案可查的。