You could shift those parts from the current loop towards the outer loop that do not depend on the variables of the current loop (= are constant in that loop). This avoids unnecessary re-computation and might slightly improve performance.
use warnings; use Win32::OLE; use Win32::OLE qw(in with); use Win32::OLE::Const "Microsoft Excel" my $yes = "yes"; #-- moved: constant for both loops for ($begincol;$begincol<$totcol;$begincol++) { my $app = $sheet2->Cells(3,$begincol)->{'Text'}; #-- moved: consta +nt for next loop for ($beginrow;$beginrow<$maxrows;$beginrow++) { my $cap = $Sheet2->Cells($beginrow,5)->{'Text'}; #-- moved out of inner loop: my $app = $sheet2->Cells(3,$begi +ncol)->{'Text'}; #-- moved out of both loops: my $yes = "yes"; if (index($app, $cap) != -1) { $Sheet->Cells($beginrow,$begincol)->{Value} = $asis; } } $beginrow = 7; }
In reply to Re: Increase speed of nested loop Win32 Excel Manipulation
by Perlbotics
in thread Increase speed of nested loop Win32 Excel Manipulation
by Sasuke300
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |