为什么我得到“在哈希元素中使用未初始化的值”?

时间:2011-07-22 03:17:01

标签: perl

..
use strict;
use warnings;
...

my (%customer);
%customer = ();
...
 17 sub _customer_id {
 18     my $customer_r = shift;
 19     unless(defined $customer{$customer_r}){
 20         $customer{$customer_r} = ++$customer_id;
 21     }
 22     $customer{$customer_r};
 23 }

我只是检查是否存在某个哈希键。

但是Use of uninitialized value in hash element位于192022

为什么?

2 个答案:

答案 0 :(得分:9)

此错误表示$customer_rundef

你是怎么称呼这个功能的?

答案 1 :(得分:1)

您可能需要查看此声明 my $customer_r = shift;

如果$customer_r获得一些空值,那么当您尝试使用此变量时会出现此错误。 基本上,每当您尝试使用空变量(未初始化)时,您都会遇到此错误。