Perl "Not an ARRAY reference"错误

标签 perl hash

如果有人能启发我了解我的错误,我会很高兴:

my %mymap; 
@mymap{"balloon"} = {1,2,3};

print $mymap{"balloon"}[0] . "\n";

最佳答案

$mymap{'balloon'}是散列而不是数组。表达式 {1,2,3}创建一个哈希:

 {
   '1' => 2,
   '3' => undef
 }

您将其分配给 %mymap 的切片对应键列表:('balloon') .由于键列表是 1 项而值列表是一项,因此您执行了与
$mymap{'balloon'} = { 1 => 2, 3 => undef };

如果您使用过 strictwarnings它会让你知道你的错误。我有:
Scalar value @mymap{"balloon"} better written as $mymap{"balloon"} at - line 3. Odd number of elements in anonymous hash at - line 3.

关于Perl "Not an ARRAY reference"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094626/

相关文章:

regex - 如何在字边界后打印字符

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

c++ - 如何散列和比较指向成员函数的指针?

javascript - jquery检测url触发点击事件中的hash

perl - 使用 Perl Net::MAC 模块处理无效 MAC 条目的错误

perl - 如何从 Perl 脚本中运行 Perl 脚本?

perl - 返回散列的子程序 - 将其分解为单独的变量

Perl:修复 Moose 属性和类型强制转换问题

algorithm - 麻省理工学院讲座错了吗?散列中的开放寻址分析

sql - 在数据库中存储一个大哈希而不是用户/密码