【发布时间】:2012-10-16 02:55:08
【问题描述】:
我创建了一个全局哈希,当我尝试从 Perl 子例程中访问该哈希时,它无法访问它。
我已将其声明为:
`%HASH = ();`
并尝试在子例程中访问它:
$HASH{$key} = $value;
我做错了吗?
【问题讨论】:
-
哈希值是在同一个文件的sub之前声明的吗?你有
use strict和use warnings吗?再贴一些代码 -
显示一些相关的代码来证明你的问题。
-
感谢大家的帮助。我正在使用: push (@{$HASH{$key}}, $value) 将哈希值推送到数组中,但没有对数组进行排序,因此找不到该值,在我看来它无法访问它。我的错,谢谢你的帮助:)
-
@iDev 你不是
pushing “在一个数组中”,而是在一个(匿名)数组引用INSIDE你的哈希。请注意,如果它不存在,它将被创建。在您的哈希上查看Data::Dumper 的输出以了解更多信息。在perlreftut 中了解有关参考的更多信息。在几乎所有情况下,useing strict 和 warnings 都有助于找到错误的东西。 Learn more -
谢谢 memowe .. 内容丰富! :)
标签: perl hash global-variables subroutine