How to speed up subroutine?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • nospam

    How to speed up subroutine?

    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::na me\n" unless $matchflag == 1;
    $matchflag = 1;
    }

    (tied @array)->flush;

    }

    }

    untie @array;

    }


  • nobull@mail.com

    #2
    Re: How to speed up subroutine?

    Someone claiming to be nospam <no@spam.com> wrote in message news:<pan.2004. 08.26.22.42.24. 284490@spam.com >...

    [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.

    Comment

    Working...