![]() |
|
Perl-Sensitive Sunglasses | |
PerlMonks |
Re: Arrow Operator Questionby kcott (Archbishop) |
on Mar 26, 2023 at 11:45 UTC ( #11151230=note: print w/replies, xml ) | Need Help?? |
G'day sectokia, [Note: $a (and $b) are special variables; it's best to only use these for their intended purposes to avoid unexpected side effects; I've replaced $a with $h in the code below. Also, '//undef' is completely superfluous: if the LHS is undef, use undef instead. :-)] See Autovivification and Arrow Notation in perlref. Perl will autovivify as needed. It requires 'c' to check for 'd', so that key is autovivified. The 'd' key either exists and has a value or it doesn't exist and the value is undef: no autovivification is needed here. You can use exists() to check for 'c'; only attempting to get a value for 'd' if 'c' exists. That can become unwieldy when there are multiple levels of keys; if you think autovivification is a problem, simply allow it then delete() afterwards. The following code has examples which demonstrate these points.
Output:
— Ken
In Section
Seekers of Perl Wisdom
|
|