Steve, You need to declare $month in a separate line. The variable may not exist if the statement evaluate to false. I think that's what it is complaining about.
-venkat On 12/15/09, Steve Bertrand <st...@ibctech.ca> wrote: > Hi everyone, > > I'm reviewing a script I wrote that I use against one of my modules. The > script takes an optional param at the command line. > > Although I am seriously reviewing my options for better and smarter ways > to utilize command line args, I'm curious as to why perlcritic complains > to me, and (in this specific case) how it should have been done differently. > > Without getting into the different ways to accept and process command > line args, will someone point out how _this_ script should have been > written to avoid the critic message? Is leaving off the condition the > same as having it there? > > I've left what perlcritic yelled about, and the script in it's entirety. > > The offending line is marked: > > > acct-dev: ISP-RADIUS % perlcritic src/utilities/aggregate_monthly > > Variable declared in conditional statement at line 21, column 1. > Declare variables outside of the condition. (Severity: 5) > > > #!/usr/bin/perl > > # - aggregate_monthly > # - utility script for ISP::RADIUS > # - aggregates totals from aggregate_daily db table into > # the aggregate_monthly db table > > # - same license as module itself > > # If a month is passed in as the first parameter in the format > # YYYY-MM, we will operate on that month. Otherwise, the month > # that was existent yesterday will be used. > > use strict; > use warnings; > > use DateTime; > use ISP::RADIUS; > > my $radius = ISP::RADIUS->new(); > > # issue is down ---vvvvvvvvvvv > > my $month = $ARGV[0] if $ARGV[0]; > > if ( $month !~ m{ \A \d{4}-\d{2} \z }xms ) { > print "\nInvalid date parameter. Must be supplied as 'YYYY-MM'\n\n"; > exit; > } > > if ( $month ) { > $radius->aggregate_monthly( { month => $month } ); > } > else { > $radius->aggregate_monthly(); > } > > ~ > -- VISUAL -- > 33 1,1 > All > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > > -- Sent from my mobile device with warm regards, Venkat Saranathan Gulf Breeze Software. -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/