Yes you can do it with perl, and I suggest using hashes.

open(FILE, "$file");
my %seen;
while(<FILE>){
        my ($item9, $item10) = (split /\|/, $_)[8,9];
        if(exists $seen{$item9}){
                if($itme10 > $seen{$item9}){
                        # the new $item10 is larger than the last one seen
                        } else {
                        # the contrary is true
                        }
                
                } else {
                $seen{$item9} = $itme10;
                }
close FILE;

-----Original Message-----
From: Dave Adams [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 04, 2002 10:10 AM
To: [EMAIL PROTECTED]
Subject: Can I do this with perl?


Hi there,

I have a problem which I would like to use perl to resolve, however I'm not
sure if it is possible to do. 

I need to scan a file and check some conditions, first if field 9 is
duplicated on 1 or more rows, then I need to check field 10 to see which is
the greater value and then only print the whole row where field 10 is the
greater, if field 9 is not a duplicate then print the whole row.
An example of the data is below.

28525|U2|4CY0|50|6775.15|2002-02-07|10461|321.43|102040724|102040773|
28526|U2|4CY0|25|3571.78|2002-02-07|6107|167.74|102040774|102040798|
28527|U2|4CY0|50|6930.3|2002-02-07|11376|324.12|102040774|102040823|
28528|U2|4CY0|25|4640.28|2002-02-07|4800|217.43|102040824|102040848|
28529|U2|4CY0|50|8432.05|2002-02-07|9023|392.03|102040824|102040873|

Dave

----------------------------------------------------------------------------
--------------------
The views and opinions expressed in this email message are the sender's
own, and do not necessarily represent the views and opinions of Summit
Systems Inc.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to