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

ask*_*ker 8 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 }
Run Code Online (Sandbox Code Playgroud)

我只是检查是否存在一些哈希键.

但得到Use of uninitialized value in hash element的线19,20,22.

为什么?

Nem*_*emo 10

这种错误的手段$customer_rundef.

你怎么称呼这个功能?