In Perl 5 you need parenthesis directly after the 'if',
Except if you use the if statement modifier
bar() if foo();
Mind you, the statement modifier wouldn't be useful here. The condition operator, on the other hand, would be useful.
$user_input->{end_date} = defined(param('end_date'))
? param('end_date')
: param('start_date');
Mind you, param('end_date') can still be called twice for nothing. The following doesn't:
$user_input->{end_date} = param('end_date');
$user_input->{end_date} = param('start_date')
if !defined($user_input->{end_date});
Since 5.10, the above can be simplified to the following:
$user_input->{end_date} = param('end_date') // param('start_date');
The following isn't strictly equivalent, but should do the trick if you want something similar while still supporting earlier versions of Perl:
$user_input->{end_date} = param('end_date') || param('start_date');
|