Is there a Monk who'll help my perling-style? In my scripts I often use ternary operators of the kind:
$Target = Function($Params) ? Function($params) : $DefaultValue;
This example is simple enough. But if Function() takes multiple parameters, and they are themselves complex (e.g. using dereferencing or array / hash indexing), there is a risk that the two invocations may be subtly mis-typed; not to mention side-effects from calling the function multiple times. My question is - Is there a way to simplify this construct? Is there something I can use between the '?' and ':' that gets the result from imediately left of the '?' ? On possible solution using an intermediate result:
$Target = ($temp = Function($params)) ? $temp : $DefaultValue;
breaks up the elegant left-to-right sequence of the code. And an elegant sequence help understanding and maintainability.
In reply to Perl ternary operator style by David Clarke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |