in reply to "do" what?
This parses OK
It shouldn't. The line 'my %config = {};' should trigger the error 'Reference found where even-sized list expected'
Assuming we change it to 'my %config = ();' it still doesn't work, since %config is lexically scoped and the do block doesn't seem to be able to access lexically scoped variables. If you change it to:
our %config = ();Then you should get the effect you're after.
Having said that, evaluating a config file to set global variables is not a great idea. In fact this is the exact problem XML::Simple was written to solve. If your config file was called scriptname.xml and looked like this:
<config> <username>zxcvb</username> <password>zzzzz</password> </config>
Then you could use it like this:
use XML::Simple; my $config = XMLin(); print $config->{username};
In real life, you would set explicit values for XMLin's keyattr and forcearray options and you'd probably also want to investigate the caching options.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: "do" what?
by Aristotle (Chancellor) on Oct 21, 2002 at 22:43 UTC | |
by grantm (Parson) on Oct 21, 2002 at 23:21 UTC | |
by Aristotle (Chancellor) on Oct 21, 2002 at 23:50 UTC |