David Clarke has asked for the wisdom of the Perl Monks concerning the following question:
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.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Perl ternary operator style
by BrowserUk (Patriarch) on May 29, 2011 at 16:56 UTC | |
Re: Perl ternary operator style
by salva (Canon) on May 29, 2011 at 16:56 UTC | |
Re: Perl ternary operator style
by JavaFan (Canon) on May 29, 2011 at 17:12 UTC | |
Re: Perl ternary operator style
by TomDLux (Vicar) on May 30, 2011 at 15:35 UTC | |
by David Clarke (Initiate) on Jun 01, 2011 at 14:03 UTC | |
A reply falls below the community's threshold of quality. You may see it by logging in. |