Hi Srinivas, <br><br>The code is not very complex, and unless you change the structure, it will not optimise too much... better to write it neatly (and with better arg passing... as suggested in the email by Ravish. <br><br>
If you are looking for absolute speed, better to write in in C and plug it in via XS. <br><br>simran.<br><br><div class="gmail_quote">2009/6/15 Srinivas Reddy <span dir="ltr">&lt;<a href="mailto:SReddy@securities.com">SReddy@securities.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div link="blue" vlink="purple" lang="EN-US">

<div>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Hi , </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Please help to optimize the code below.  We basically read 2
xls files into an array @xls2 and @xls1 . For each cell we want to compare (
starting from col 32 ) values in each cell and if they are not equal we need to
store it in a different array. This we will then use to bold those particular cells.
</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">The loop which does this comparison could be replacement by
some in built array difference kind of function. I am new to perl so apologies if
I ve used any wrong terminologies here.  Appreciate your help on the same.
Please find attached whole code as well for reference </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">sub cell_handler2 {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        my $workbook    = $_[0];</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        my $sheet_index = $_[1];</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        my $row         = $_[2];</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        my $col         = $_[3];</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        my $cell        = $_[4];</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">             # Construct array for Dx code</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">             </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        push @xls2 , {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                        &#39;row2&#39; =&gt; $row,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                        &#39;col2&#39; =&gt; $col,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                        &#39;value2&#39; =&gt; $cell-&gt;value(),</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        };</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">        return @xls2;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">}</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">#print Dumper(@xls2);</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"># Print the End Time to read second excel file</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">print scalar(localtime) . &quot;: End Reading Excel2
\n&quot;;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">print scalar(localtime) . &quot;: Start Populating Bolding
Array \n&quot;;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"># Inefficient way of looping</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"># Please change this as it could boost the performance
significantly </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">for(@xls2) {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">            if($_-&gt;{&#39;col2&#39;} &gt; 32 &amp;&amp;
$_-&gt;{&#39;row2&#39;} &gt; &#39;0&#39; ) {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    $newvalue =
$_-&gt;{&#39;value2&#39;};</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    $newrow =
$_-&gt;{&#39;row2&#39;};</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    $newcol =
$_-&gt;{&#39;col2&#39;};</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    for(@xls1) {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                $oldrow =
$_-&gt;{&#39;row1&#39;};</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                $oldcol =
$_-&gt;{&#39;col1&#39;};    </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                if($_-&gt;{&#39;col1&#39;}
&gt; 32 &amp;&amp; $_-&gt;{&#39;row1&#39;} &gt; 0 &amp;&amp; $_-&gt;{&#39;row1&#39;} eq $newrow
&amp;&amp; $_-&gt;{&#39;col1&#39;} eq $newcol) {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                                        $oldvalue
= $_-&gt;{&#39;value1&#39;};</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                                        last;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                }</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    }</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    if($oldvalue ne
$newvalue) {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                push
@bold_array , {</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                            &#39;row&#39;
=&gt; $_-&gt;{&#39;row2&#39;},</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                            &#39;col&#39;
=&gt; $_-&gt;{&#39;col2&#39;},</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                            &#39;value&#39;
=&gt; $_-&gt;{&#39;value2&#39;},</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                                };</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">                                    }</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">            }</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">}</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Regards,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Srinivas Reddy</span></font></p>

</div>


<br>
______________________________________________________________________<br>
This communication contains information which is confidential. It is for the<br>
exclusive use of the intended recipient(s). If you are not the intended<br>
recipient(s) please note any distribution, copying or use of this<br>
communication or the information in it is strictly prohibited. If you have<br>
received this communication in error please notify us by e-mail or<br>
by telephone (as above) and then delete the e-mail and all attachments and<br>
any copies thereof.<br>
______________________________________________________________________<br>
</div>


<br>_______________________________________________<br>
Bangalore-pm mailing list<br>
<a href="mailto:Bangalore-pm@pm.org">Bangalore-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/bangalore-pm" target="_blank">http://mail.pm.org/mailman/listinfo/bangalore-pm</a><br></blockquote></div><br>