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

Please consider AgentM's suggestion again -- DBD::CSV (and also, DBD::RAM) allow you to treat CSV files (and other formats) as a database -- and later when you do move to a real database you'll be able to move the scripts with very little effort as well.

Replies are listed 'Best First'.
Re: Re: Re: Re: comparing array values or?
by Anonymous Monk on Mar 14, 2001 at 03:40 UTC

    Well, we don't have those modules installed, otherwise I'd be happy to use them :). So let me ask this, how do I create an array of dynamically named arrays?

    I'll assume:

    @array = @array1,@array2,@array3, etc. Each array in @array is dynamically named.


    Here's the code I've got to get started. It's not much, but hey...we got to start somewhere with it.
    open(FILE, "data.txt"); #opens data.txt in read-mode while(<FILE>){ #reads line by line from FILE which i +s the filehandle for data.txt chomp; # print join(':', split(/,/,$_)); # print "\n"; @data = split(/,/,$_); } close FILE; #close the file.

    So, am I being lame or what?
      Well, we don't have those modules installed, otherwise I'd be happy to use them :). So let me ask this, how do I create an array of dynamically named arrays?

      Well, you almost certainly do *not* want dynamically named arrays. You more likely want either an array of array-references (probably anonymous arrays), or a hash of array-references. Or perhaps something altogether different -- we can't possibly know what you really want because you still have not adequately described what it is you are really trying to do. Use what fields in file1, and compare them to what in file2, and for what purpose? generate a report? sort one file according to a field in the other? merge into one file ordered by some field? delete data in file2 based on some user specified criteria that links to related data in file1?

      You may think you are presenting a simplified problem for us to help solve by omitting the larger picture and asking for specific implementation details, but you are incorrect in that assumption. Dynamically named variables are almost always the wrong answer, so rather than have us help you solve the wrong problem, you'd be better served to be more explicit in stating what you hope to achieve beginning with describing the data files, any other inputs the program is to receive, what the program is supposed to do with all of its input data and files, and following through with a description of the output you would like to arrive at. Do no hesitate to state the why's as well as the what's.

        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!

Re: Re: Re: Re: comparing array values or?
by Anonymous Monk on Mar 14, 2001 at 03:27 UTC
    Sure, but the problem is none of our servers have those modules installed, otherwise it'd be a great idea. :(