kayj has asked for the wisdom of the Perl Monks concerning the following question:
I have a file 1 with 300,000 patients , each row has the subject information and the first column is the subject ID. I need to sort this file based on a certain criterion using file2 where file 2 has the list of the subject ID. For example, if file 2 looks like
Sub35 Sub71 Sub89 . .
Then I have to go to file 1 , search for sub35 and print the record for sub35 and the following 2 subjects in file 1. then search for sub71 in file 1 and print out the record for sub71 and the 2 subjects following sub71 in file 1.
The way I wrote the script is as follows:
Loop through file 2 using while loop and get the subject number. Loop over file 1 from the beginning of the file to the end using a for loop, split each row and find the subject, then print out the line and the following two lines.The problem with this approach is that the program took over 24 hours to run. Is there a way to cut the processing time?
Thanks for your help,
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to cut down the running time of my program?
by ikegami (Patriarch) on Oct 27, 2009 at 18:38 UTC | |
|
Re: How to cut down the running time of my program?
by davido (Cardinal) on Oct 27, 2009 at 18:48 UTC | |
|
Re: How to cut down the running time of my program?
by Argel (Prior) on Oct 28, 2009 at 00:44 UTC | |
|
Re: How to cut down the running time of my program?
by educated_foo (Vicar) on Oct 28, 2009 at 02:35 UTC | |
by BrowserUk (Patriarch) on Oct 28, 2009 at 03:14 UTC |