It need not be quite so ugly. Reverse the first test so you get a chained ternary nstead of a nested ternary. Then parenthesize the tests and line up the ? and : vertically and it becomes a whole lot easier to read (IMO).
Incidentally I'm betting you format your code using some kind of automatic indenter (cperl-mode perhaps?) In my experience code formatters do awful things to chained and nested ternary ops. So format em by hand and you get much more readable results.(!defined($key)) ? $bar : (exists($foo{$key})) ? $foo{$key} : $foo{$key} = undef;
:-)
Yves / DeMerphq
---
Writing a good benchmark isnt as easy as it might look.
In reply to Formatting chained and nested ternary ops (was Re^4: lvalue subs return undef....)
by demerphq
in thread lvalue subs return undef, playing with experimental features, the End of the World, etc
by erikharrison
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |