- Don't write it that way to begin with . . . :)
- perltidy as was mentioned before
- This is Perl, not C. Explicitly testing against 0 for truth of a boolean (by which I mean solely true/false; if you're (say) encoding state that's a different proposition) is kinda klunky; just use the variable in a boolean sense and lose the == 1 and == 0 stuff
- Consider refactoring by decomposing the parts, if not into separate subs at least into separate conditional variables (e.g. have my $three_arg_interval_model = scalar @ARGV >= 3 && $oneDayFlag == -1;, and your conditional will read a bit better if( ( $wrongDateFlag and ( $three_arg_interval_model or $two_arg_oneday_model ) ) or $three_arg_wrong_date ) { ... } (and of course you can combine that first and clause into another variable too if you really want))
Update: And if you're looking to trim verbiage those explicit scalar prefixes are technically extraneous (i.e. just @ARGV >= 3 works just as well), but that's really more a personal preference (not that I don't do it myself from time to time).
The cake is a lie.
The cake is a lie.
The cake is a lie.