[Bangalore-pm] Bangalore-pm Digest, Vol 16, Issue 8

raghu graghav at gmail.com
Mon Jun 15 19:00:03 PDT 2009


Try using Array module
http://search.cpan.org/~muenalan/Class-Maker-0.05.18/Maker/Examples/Array.pm

On Tue, Jun 16, 2009 at 3:01 AM, <bangalore-pm-request at pm.org> wrote:

> Send Bangalore-pm mailing list submissions to
>        bangalore-pm at pm.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>        http://mail.pm.org/mailman/listinfo/bangalore-pm
> or, via email, send a message with subject or body 'help' to
>        bangalore-pm-request at pm.org
>
> You can reach the person managing the list at
>        bangalore-pm-owner at pm.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Bangalore-pm digest..."
>
>
> Today's Topics:
>
>   1. Re: Need Help to optimise the code (Kiran Kumar)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 15 Jun 2009 16:30:54 -0500
> From: Kiran Kumar <mkirank at gmail.com>
> Subject: Re: [Bangalore-pm] Need Help to optimise the code
> To: Srinivas Reddy <SReddy at securities.com>
> Cc: "bangalore-pm at pm.org" <bangalore-pm at pm.org>
> Message-ID:
>        <b2d58a680906151430l1622dfaam9d711a6982cb1068 at mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
>
> you will not be able to compare hashes but you can convert your data to
> strings and it will make it easier , something like this
>
> #!perl
> use strict;
>
> use warnings;
> use Data::Dumper;
>
> my @arr =(
> {
>    'row' => 33,
>    'col' => 1,
>    'value' => 'xx',
> },
>
> {
>    'row' => 30,
>    'col' => 1,
>    'value' => 'zz',
> },
>
> {
>    'row' => 34,
>    'col' => 1,
>    'value' => 'yy',
> },
>
> );
>
> my @arr1 =(
>
> {
>    'row' => 33,
>    'col' => 1,
>    'value' => 'xx',
> },
>
> {
>    'row' => 30,
>    'col' => 1,
>    'value' => 'zz',
> },
>
> {
>    'row' => 35,
>    'col' => 1,
>    'value' => 'yy',
> },
>
> );
>
>
> my @vals =  map {$_->{'row'} > 32 && $_->{'col'} > 0 ?stringify(%$_):()}
> @arr;
> my @vals1 =  map {$_->{'row'} > 32 && $_->{'col'} > 0 ?stringify(%$_):()}
> @arr1;
>
>
> my %hash;
> @hash{@vals} = 1  x @vals;
> my @diff =  grep {not exists$hash{$_}} @vals1;
>
>
> sub stringify {
>     return "@_";
> }
>
>
>
>
> 2009/6/15 Srinivas Reddy <SReddy at securities.com>
>
> >  Hi Thnx a lot for your quick help. Sry C is rules out as this willl form
> > a part of perl script and we have ?C? Expertise issue as well. I think
> > kumars solution would really help . Let us rewrite it and check the
> > performance.
> >
> >
> >
> > I am still looking at a function which takes 2 arrays and gives me the
> > difference in them , in my case these array contain my xls file ( row ,
> col
> > and value associated with each cell ) .
> >
> >
> >
> > Regards,
> >
> >
> >
> > Srinivas Reddy
> >
> > Asia Technology and Global Projects Manager
> >
> > Skype : sreddyisi
> >
> > Cell : +91 9740076449
> >
> > LandLine : +91 9900524073/74/76./78
> >
> > Fax : +91 8026729764
> >
> > Url : www.securities.com
> >
> > www.thefinancialnet.com
> >
> > elearning.securities.com
> >
> > P Please consider the environment before printing this email
> >   ------------------------------
> >
> > *From:* simrangambhir at gmail.com [mailto:simrangambhir at gmail.com] *On
> > Behalf Of *simran
> > *Sent:* Monday, June 15, 2009 6:17 PM
> > *To:* Srinivas Reddy
> > *Cc:* bangalore-pm at pm.org
> > *Subject:* Re: [Bangalore-pm] Need Help to optimise the code
> >
> >
> >
> > Hi Srinivas,
> >
> > 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.
> >
> > If you are looking for absolute speed, better to write in in C and plug
> it
> > in via XS.
> >
> > simran.
> >
> > 2009/6/15 Srinivas Reddy <SReddy at securities.com>
> >
> > Hi ,
> >
> >
> >
> > 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.
> >
> >
> >
> > 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
> >
> >
> >
> > sub cell_handler2 {
> >
> >
> >
> >         my $workbook    = $_[0];
> >
> >         my $sheet_index = $_[1];
> >
> >         my $row         = $_[2];
> >
> >         my $col         = $_[3];
> >
> >         my $cell        = $_[4];
> >
> >              # Construct array for Dx code
> >
> >
> >
> >         push @xls2 , {
> >
> >                         'row2' => $row,
> >
> >                         'col2' => $col,
> >
> >                         'value2' => $cell->value(),
> >
> >         };
> >
> >         return @xls2;
> >
> >
> >
> > }
> >
> > #print Dumper(@xls2);
> >
> > # Print the End Time to read second excel file
> >
> > print scalar(localtime) . ": End Reading Excel2 \n";
> >
> >
> >
> > print scalar(localtime) . ": Start Populating Bolding Array \n";
> >
> > # Inefficient way of looping
> >
> > # Please change this as it could boost the performance significantly
> >
> > for(@xls2) {
> >
> >             if($_->{'col2'} > 32 && $_->{'row2'} > '0' ) {
> >
> >                                     $newvalue = $_->{'value2'};
> >
> >                                     $newrow = $_->{'row2'};
> >
> >                                     $newcol = $_->{'col2'};
> >
> >                                     for(@xls1) {
> >
> >                                                 $oldrow = $_->{'row1'};
> >
> >                                                 $oldcol = $_->{'col1'};
> >
> >                                                 if($_->{'col1'} > 32 &&
> > $_->{'row1'} > 0 && $_->{'row1'} eq $newrow && $_->{'col1'} eq $newcol) {
> >
> >
> > $oldvalue = $_->{'value1'};
> >
> >
> > last;
> >
> >                                                 }
> >
> >                                     }
> >
> >                                     if($oldvalue ne $newvalue) {
> >
> >                                                 push @bold_array , {
> >
> >                                                             'row' =>
> > $_->{'row2'},
> >
> >                                                             'col' =>
> > $_->{'col2'},
> >
> >                                                             'value' =>
> > $_->{'value2'},
> >
> >                                                 };
> >
> >                                     }
> >
> >             }
> >
> > }
> >
> >
> >
> >
> >
> > Regards,
> >
> >
> >
> > Srinivas Reddy
> >
> >
> > ______________________________________________________________________
> > This communication contains information which is confidential. It is for
> > the
> > exclusive use of the intended recipient(s). If you are not the intended
> > recipient(s) please note any distribution, copying or use of this
> > communication or the information in it is strictly prohibited. If you
> have
> > received this communication in error please notify us by e-mail or
> > by telephone (as above) and then delete the e-mail and all attachments
> and
> > any copies thereof.
> > ______________________________________________________________________
> >
> >
> > _______________________________________________
> > Bangalore-pm mailing list
> > Bangalore-pm at pm.org
> > http://mail.pm.org/mailman/listinfo/bangalore-pm
> >
> >
> >
> > ______________________________________________________________________
> > This communication contains information which is confidential. It is for
> > the
> > exclusive use of the intended recipient(s). If you are not the intended
> > recipient(s) please note any distribution, copying or use of this
> > communication or the information in it is strictly prohibited. If you
> have
> > received this communication in error please notify us by e-mail or
> > by telephone (as above) and then delete the e-mail and all attachments
> and
> > any copies thereof.
> > ______________________________________________________________________
> >
> > _______________________________________________
> > Bangalore-pm mailing list
> > Bangalore-pm at pm.org
> > http://mail.pm.org/mailman/listinfo/bangalore-pm
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mail.pm.org/pipermail/bangalore-pm/attachments/20090615/c7591548/attachment.html
> >
>
> ------------------------------
>
> _______________________________________________
> Bangalore-pm mailing list
> Bangalore-pm at pm.org
> http://mail.pm.org/mailman/listinfo/bangalore-pm
>
> End of Bangalore-pm Digest, Vol 16, Issue 8
> *******************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/bangalore-pm/attachments/20090616/1206308a/attachment-0003.html>


More information about the Bangalore-pm mailing list