How to speed up subroutine?

G

Guest

The sub below uses the Tie::File module to perform a string
substitution using strings in the hash %strings. The hash
would contain IP addresses, an old and new address,
corresponding to the key/value pairs. The idea is
to replace IP addresses. Anyway, it worked well when
there were about 10 elements in the array, but when
there are ~ 100, the code runs unacceptably slow.
I've tried deferring writing, but that didn't help much.
Anything else I can do to speed up this code, and still
continue using Tie::File?

-Thanks



sub DoReplace {

$matchflag = 0;

#Skip things that we don't want to process, namely binaries and dirs.
#Do a "perldoc -f -f" to view test switches.
return unless -T;

my $obj = tie(@array, 'Tie::File', $_) || die "$!\n";

(tied @array)->defer;

for (@array) {

while ((my $key, my $value) = each %strings) {

if (s/$key/$value/){
print "Processing==> $File::Find::name\n" unless $matchflag == 1;
$matchflag = 1;
}

(tied @array)->flush;

}

}

untie @array;

}
 
N

nobull

[snip]

Do you actually work for Hormel or are you participating in a DDoS
attack on them. If the latter, why, what have they done to you?

This newsgroup does not exist (see FAQ). Please do not start threads
here.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,738
Latest member
JinaMacvit

Latest Threads

Top