perl – 引用问题的数组与列表

perl – 引用问题的数组与列表,第1张

概述关于以下代码的两个问题: %h1 = { 'key1' => ( 1, 2, 3 ), 'key2' => ( 4, 5, 6 ) };%h2 = { 'key1' => [ 1, 2, 3 ], 'key2' => [ 4, 5, 6 ] };print $(@h1{'key2'})[1]; Q1:h1和h2有什么区别?请不要说’一个是列表 关于以下代码的两个问题:

%h1 = {    'key1' => ( 1,2,3 ),'key2' => ( 4,5,6 )    };%h2 = {    'key1' => [ 1,3 ],'key2' => [ 4,6 ]    };print $(@h1{'key2'})[1];

Q1:h1和h2有什么区别?请不要说’一个是列表的哈希和另一个数组的哈希’…相反,我想知道在使用方面的转换.

Q2:为什么print语句中的引用$(@ h1 {‘key2’})[1]不能编译?这是我的想法:我想访问对应于’key2’的数组/列表:@ h1 {‘key2’}.然后我想访问该列表/数组中索引1处的标量:$(@ h1 {‘key2’})[1].为什么这是错的?这个变量引用的东西很混乱.

解决方法 这些都不像你想的那样工作.使用严格并始终使用警告.

%h1 = {'key1' => ( 1,6 )};

您正在尝试将hashref({}构造)分配给哈希.它被字符串化为标量,并在%h1中用作键,值为undef.另外,因为你正在使用列表(()构造),它会变得扁平,你正在创建哈希:

%href = ( key1 => 1,2 => 3,key2 => 4,5 => 6,);

在后一种情况下,您使用数组引用([]构造)正确创建哈希,但您仍然在为哈希分配href.你想做:

%h1 = ('key1' => [ 1,6 ]);

这将通过引用在列表上下文中创建%h1,在标量上下文中创建值.

总结

以上是内存溢出为你收集整理的perl – 引用问题的数组与列表全部内容,希望文章能够帮你解决perl – 引用问题的数组与列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1268595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存