Perl变量范围问题

时间:2013-09-28 20:13:29

标签: perl

我在Perl中遇到了一个范围问题。我有一个名为“member”的全局哈希。我调用一个函数,可以在哈希中显示一个对象的属性(密码)。但是当我尝试从调用sub获取此密码属性时,它没有被定义(尽管该对象确实存在)。

以下是代码:

my($userid) = @_;
my($guid);

$guid = SQL->new($MembersTable,'userid');
$guid->where('userid');
$guid->columns('userid','password');
%member = (%member, $guid->select($userid));
#   error($member{$userid}{'password'});
#   $member{$userid}{'password'} = 'test'; 

guid有一个名为password的属性。如果我在第一个注释行打印出来,我可以看到这个函数中的值,但是当它返回到调用子时它已经消失了。

如果我通过取消注释第二行显式设置属性,我可以获得调用子中的值。

我显然缺少一些非常基本的东西,但它是什么?!

0 个答案:

没有答案