久しぶりにPerlをやったら数値の初期化がわからんくなった

-------------------------------------

# @_ は標準入力から入ってきた数字の文字。shiftすると0が出てくる。
my @ccc = qw(aa bb cc dd ee);
$aa[0]->{'bbb'}->{ $ccc[shift] } = 1;
↓
Use of uninitialized value in array element

-------------------------------------------

$aa[0]->{'bbb'}->{ $ccc[(shift) + 0] } = 1; # +0して数値だと教えてやる
↓
Use of uninitialized value in array element

--------------------------------------------

my $SUUTI = int( (shift) + 0 ); #もうこれは絶対数値だろ
$aa[0]->{'bbb'}->{ $ccc[$SUUTI] } = 1;
↓
Use of uninitialized value in array element

--------------------------------------------

どれも全部警告が出る以外は正しく動作します。
もう警告消そうかな…