Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Super Duper Inefficient

by EvdB (Deacon)
on Jun 20, 2003 at 13:10 UTC ( [id://267554]=note: print w/replies, xml ) Need Help??


in reply to Super Duper Inefficient

I note the line:
next if ($hostid ne $SERVER{$server});
Why not split @DATAinto lots of $hostid. Try:
my %new_data = (); foreach ( @DATA ) { my ($hostid, $rest) = split /\t/, $_, 2; push @{$new_data{$hostid}}, "$hostid\t$rest"; }
Then instead of running through @DATA for each $hostid you can just run through @{$new_data{$hostid}} once you have determined $hostid

--tidiness is the memory loss of environmental mnemonics

Replies are listed 'Best First'.
Re: Re: Super Duper Inefficient
by Anonymous Monk on Jun 20, 2003 at 13:35 UTC
    I was formulating this same response myself, but I'll provide a minor variation, which does pretty much the same, but uses automatic variables instead of temporary placeholder variables:
    my %new_data = (); foreach ( @DATA ) { /^(.*?)\t.*$/; push @{$new_data{$1}}, $_; }
    Either case is equally valid in my eyes - I do not know which is faster, the split() or //, so I'll leave that to better souls than mine to answer on.

    The important thing I'd like to point out is that the above method - ran as a step before the server loop - effectively reduces your redundancy to two reads - once to populate the hash, and then once for the server-specific loop.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://267554]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (2)
As of 2024-04-20 06:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found