>>>>> "SHC" == Shawn H Corey <[email protected]> writes:
SHC> Steve Bertrand wrote:
>> my $month = $ARGV[0] if $ARGV[0];
that is similar to the broken my $foo = 1 if 0 used to make static vars
inside a sub. the assignment won't even happen unless you have a true value.
SHC> Try:
SHC> my $month = '';
SHC> $month = $ARGV[0] if $ARGV[0];
or just use ||:
my $month = $ARGV[0] || '' ;
then the assignment always happens and the declaration should be critic
clean.
you can even just do:
my $month = $ARGV[0] ;
since you do a boolean test on $month later on. it will handle the same
logic you have here. but you do a regex on $month and that would trigger
an undef warning if you didn't pass in an arg. so the above code is better.
the rule is never use a statement modifier on a declaration. you can
almost always get what you want with boolean ops.
uri
--
Uri Guttman ------ [email protected] -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/