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.