in reply to Re: Re: Re: Re: Re: comparing array values or?
in thread comparing array values or?

Whew! You guys are tough. :) Okay...I understand what it is you're asking from me. I'll attempt to explain further and please be nice if I still don't get it right. :(

I'll describe File 1 first.

File 1 has three fields, customer id, customer name, and sender id.

File 2 has 10 fields. The 2nd field is the sender id and the 5th field is organization type.

My goal is to generate a report printing the entire list of customer names from file 1. For each customer in File 1 I need to know how many organizations in File 2 match the sender id from File 1.

I'll also need a list of organization types from File 2 that do not match up with sender id from File 1 based on sender id.

Does this help? I'd be more than happy to answer any further questions to help explain the goal or concept I'm trying to achieve.

Thanks!

  • Comment on Re: Re: Re: Re: Re: Re: comparing array values or?

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Re: Re: comparing array values or?
by chromatic (Archbishop) on Mar 19, 2001 at 03:48 UTC
    Here's one possible approach.

    Read (the shorter) File 1 into memory. You could add each line to a hash, keyed on the sender ID.

    After that's done, loop through each line of File 2. You can probably use split or substr or even unpack to get at the individual fields. Check to see if there's a hash member with the sender id (with exists, so you don't get bitten by autovivification). If so, print the customer name to the match file. Otherwise, print the organization type to a second file.

    You don't have to print to files. You could push elements onto an array or assign to another hash, to avoid duplicates, if that's your trick. Using files is simple, if you open two filehandles before looping over the second file, and you can run them through uniq or something similar without using too much memory.

    Make sense?