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;
}