Hi, I have two big text files, I need to read one line from first file, write some information from this line to a new file, and search second file to find lines with same control_id, and write more information to the new file, I wrote in perl, but it tooks half day to finish joining the two files. Do you have any suggest?
Below are some of my code. ==================================================================== #!/usr/bin/perl -w #use IO::FILE; #use strict 'subs'; # $file1="file1.txt"; $file2="file2.txt"; open (SOURCE, "$file1") or die "can't open the $file1: $!"; while (<SOURCE>) { $control_id = substr($_, 0, 22); open (SINK, ">>newFile.dat") or die "can't open the newFile.dat: $!"; print SINK $control_id; #write more to newFile.dat open (ADDSOURCE, "$file2") or die "can't open the $file2: $!"; while (<ADDSOURCE>) { if ($_ =~ /^$control_id/) { print SINK substr($_, 31, 3); #write more to newFile.dat $weight = substr($_, 48, 7); $totalWeight += $weight; $_ = <ADDSOURCE>; while ($_ =~ /^$control_id/) { print SINK substr($_, 31, 3); #write more to newFile.dat $weight = substr($_, 48, 7); $totalWeight += $weight; $_ = <ADDSOURCE>; }#end of while print SINK "$totalWeight"; seek(ADDSOURCE, 0, 2) or die "Couldn't seek to the end: $!\n"; }#end of if }#end of while for ADDSOURCE close(ADDSOURCE) or die "can't close $ADDSOURCE: $!\n"; close(SINK) or die "can't close $SINK: $!\n"; } #end of while for SOURCE close(SOURCE) or die "can't close $SOURCE: $!\n"; ============================================================================ ===========