undef(未定義)の値を文字列や数値として使うと出ます。ハッシュの空振りなどで頻発します。
出るコード
use warnings;
my %user = (name => "Aoi");
print "年齢: $user{age}\n"; # age キーは無い → undef
エラーメッセージ
Use of uninitialized value $user{"age"} in concatenation (.) or string at script.pl line 3.
直し方
$user{age} // "不明"(定義済みか演算子 //)で既定値を用意します。exists $user{age} で確認してもよいです。