How to speed up subroutine?
From: nospam (no_at_spam.com)
Date: 08/27/04
- Next message: Steve Bennett: "Re: how to get the number of keys in an hash"
- Previous message: Ken Chesak: "reg exp"
- Next in thread: nobull_at_mail.com: "Re: How to speed up subroutine?"
- Reply: nobull_at_mail.com: "Re: How to speed up subroutine?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 26 Aug 2004 18:42:24 -0400
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;
}
- Next message: Steve Bennett: "Re: how to get the number of keys in an hash"
- Previous message: Ken Chesak: "reg exp"
- Next in thread: nobull_at_mail.com: "Re: How to speed up subroutine?"
- Reply: nobull_at_mail.com: "Re: How to speed up subroutine?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|