What is happing if you write "$LETTERS{$letter}", i.e. us quotes instead of
eval?
Regards
Gerald
Von: Chuck Zumbrun [mailto:[email protected]]
Gesendet: Dienstag, 17. September 2019 17:22
An: [email protected]
Betreff: embPerl and Readonly module issue
Using embPerl 2.5.0, porting an application from Ubuntu 12.04, perl 5.14,
Readonly 2.0.0 to Ubuntu 18.04, perl 5.26, Readonly 2.05
If I have a Readonly hash like this:
[-
use Readonly;
Readonly our %LETTERS => {
"A" => "Letter A",
"B" => "Letter B",
"C" => "Letter C"
}
-]
and I try to use it like this:
[$ foreach $letter (keys %LETTERS) $]
[+ $LETTERS{$letter} +]
[$ endforeach $]
That works with the older versions and doesn't with the newer. With the
newer version nothing is output. If I do something to force it to be
evaluated, like:
[$ foreach $letter (keys %LETTERS) $]
[+ eval { $LETTERS{$letter} } +]
[$ endforeach $]
It does output "LETTER A", etc. in both versions.
Any explanation of what's happening or suggestions on how to best deal with
it?
--
This message has been checked by Libra Esva and is found to be clean.
Mark it as spam
<http://srvmailgw3.i.ecos.de/cgi-bin/learn-msg.cgi?id=D925740090.A4277>
Blacklist sender
<http://srvmailgw3.i.ecos.de/cgi-bin/learn-msg.cgi?blacklist=1&id=D925740090.A4277>