in reply to Logic problem on loops
is generally better written as:$xf = 0; $sthf->execute; while (@dataf = $sthf->fetchrow_array()) { $filiais[$xf] = $dataf[0]; $xf++; }
Similarly,while (my ($col) = $sthf->fetchrow_array()) { push @filiais, $col; }
would be shorter, clearer, and prone to one less boundary condition as:for ($m=1; $m<=12; $m++)#Make an array of months { $months[$m] = $m; } foreach $months(@months) {
The biggest issue you have is what appears to be a complete reliance on package globals. If you forget to reset one to zero at the start of the sub, you'll have values bleading over across invocations -- exactly what you describe. Change all of these variables into lexicals within your sub and I suspect your error will disappear.foreach my $month (1 ... 12) {
|
|---|