open DataFile, "Inventory.csv" or die ("Inventory.csv $!"); my @Inventory = ; close DataFile; open DataFile, "clients.txt" or die ("clients.txt $!"); while (my $line = ) { my @fields = split(/,/, $line); my $username; my @sys; my $beg = 0; my $end = $#Inventory; my $mid = int(($beg+$end)/2); while ($beg <= $end) { @sys = split(/,/,$Inventory[$mid]); if ($fields[3] eq $sys[0]) { $company = $sys[3]; $username = $sys[1]; #remove the matched line from inventory @Inventory = (@Inventory[0..$mid-1],@Inventory[$mid+1..$#Inventory]); last; } elsif ($fields[3] lt $sys[0]) { $end = $mid - 1; } else { $beg = $mid + 1; } $mid = int(($beg+$end)/2); } push @Data, $fields[3].",".$company.",".$fields[6].",".$fields[7].",".$fields[4].",".$fields[11].",".$username.",".$sys[4]; } #processing @Data after this