Ratazong has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
I'm struggeling with packages and eval ... here is my short example:
When running it (calling items::initItems(); in my main program), I get the error mentioned above, and the output is: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 uniniti +alized value in concatenation (.) or string at items.pm line 16. (th +is line) print( Data::Dumper->Dumpxs( [ \ %items ], [ qw{ *items } ] )); }
What is wrong? Why does the eval somehow access my hash, but does not add the value? Is it something obvious and I'm just blind today?%items = ( '1' => { 'Name' => 'Rusty Sword' }, '3' => {}, '2' => { 'Value' => 2 } );
Thanks for help! Rata
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Eval/package question
by GrandFather (Saint) on Jan 21, 2020 at 10:33 UTC | |
Re: Eval/package question
by Eily (Monsignor) on Jan 21, 2020 at 10:59 UTC | |
by Ratazong (Monsignor) on Jan 21, 2020 at 11:33 UTC | |
by haukex (Archbishop) on Jan 21, 2020 at 19:05 UTC | |
by shmem (Chancellor) on Jan 21, 2020 at 14:38 UTC | |
by Anonymous Monk on Jan 21, 2020 at 16:26 UTC | |
by jcb (Parson) on Jan 22, 2020 at 00:29 UTC | |
Re: Eval/package question
by shmem (Chancellor) on Jan 21, 2020 at 14:26 UTC | |
A reply falls below the community's threshold of quality. You may see it by logging in. |
Back to
Seekers of Perl Wisdom