in reply to Re^3: a little problem with sorting my data
in thread a little problem with sorting my data

Changing the code as you advised; but still the same result: not effect on sorting. Am i missing something here
#!usr/bin/perl use strict; use warnings; my $file_name; my $field1; my $field2; my $key1; my $key2; my $field5; my $field3; my $k; my $j; my $x; my $eachline = 0; my $eachline1 = 0; my @logarray; my @ff_array; my @file_name1; $k = 1; $file_name = "QoEWeb_DB_Log.txt"; #An input LOG file which holds infor +mation about different users. open(SW,$file_name) or die "ERROR OPENING IN FILE"; open FILE, ">output.txt" or die "ERROR..unable to write" ; #Will write + the result into an OUTPUT file. for (sort <SW>) { chomp($eachline); @file_name1 = ("Carlo_Arnold_2.232_Final.txt", "Sohaib_Ahmad_2.225 +_Final.txt"); #Input LOG files; Each file holds informaton about Indi +vidual user. I will be adding about 30 files here. @logarray = split(/:/,$_); # Taking required fields from the first + input file. $field1 = $logarray[2]; $field2 = $logarray[4]; $key1 = $logarray[8]; $field5 = $logarray[6]; $x = scalar(@file_name1); for($j=0;$j<$x;$j++) { open(RW,$file_name1[$j]) or die "ERROR OPENING IN FILE"; for (sort <RW>) { chomp($eachline1); @ff_array = split(/:/,$_); #Taking required fields from the s +econd set of input files. $key2 = $ff_array[0]; $field3 = $ff_array[1]; if( $key1 == $key2) # Finding a match between the two input f +iles { print FILE "$field1:$field2:$key1:$field5:$field3"; #P +rinting the desired result from both batch of input files. } } } } close FILE; close SW or die "Cannot close"; close RW or die "Cannot close";

Replies are listed 'Best First'.
Re^5: a little problem with sorting my data
by ig (Vicar) on Jul 28, 2009 at 18:07 UTC

    I think you need to sort <SW> rather than <RW>

    It is good that you have added 'use strict' and declared all your variables with 'my'. It is generally best to declare your variables in the smallest possible scope, rather than declaring them all at file scope.

    You are chomping $eachline and $eachline1, which you are not setting or using. These statements can be removed.

    It is better to use the three argument form of open