package items; use strict; use warnings; use Data::Dumper; use Exporter; my %items; 1; sub initItems { $items{1}{Name} = "Rusty Sword"; # fine $items{2}{Value} = 2; # fine eval ("$items{3}{Value} = 2;"); # ERROR: Use of uninitialized value in concatenation (.) or string at items.pm line 16. (this line) print( Data::Dumper->Dumpxs( [ \ %items ], [ qw{ *items } ] )); }