Hi,
I got manifest which holds programs name and its checksum, In below code I got two hash which I build
parsing two version of manifest. I am doing below listed task to compare and findout the program
changes
Manifest got: 27942 lines
Time taken: 5 min
sub compareProgram
{
my $manifest1HR = shift;
my $manifest2HR = shift;
my $main1AR = $manifest1HR->{MAIN};
my $main2AR = $manifest2HR->{MAIN};
foreach my $attr1HR(@$main1AR)
{
next unless($attr1HR->{Program});
foreach my $attr2HR(@$main2AR)
{
next unless($attr2HR->{Program});
if($attr1HR->{Program} eq $attr2HR->{Program} and
$attr1HR->{File} eq $attr2HR->
+{File})
{
if($attr1HR->{Size} ne $attr2HR->{Size})
{
print "1: $attr1HR->{Program}\n";
print "1: $attr1HR->{File}\n";
print "1: $attr1HR->{Size}\n";
print "2: $attr2HR->{Size}\n";
}
last;
}
}
}
}
Above code work perfectly but the problem is its bit slow is there any way I can change
the code to make it more faster for doing same taks?
Looking forward for the suggestion.
Regards,
tart
Updates...
After parsing manifest $manifest1HR in above code contain something like this,
$VAR1 = {
'MAIN' => [
{
'Program' => 'EXECUTE',
'Size' => '1302267',
'File' => 'help.txt'
},
{
'Program' => 'RUN',
'Size' => '15042454',
'File' => 'help.txt'
},
{
'Program' => 'RUN',
'Size' => '387469',
'File' => 'run.exe'
},
{
'Program' => 'PIPE',
'Size' => '34010402',
'File' => 'run.exe',
}
]
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.