in reply to Re: Re: Re: comparing two arrays
in thread comparing two arrays

Sorry for not providing all the info, but the file looks like this,

Insp_data table loaded successfully 2001-11-26 00:34:58.61 with 284734 records.
Inventory_trans_temp table loaded sucessfully 2001-11-26 01:31:08.88 with 498 records.
Invoice_extension table loaded successfully 2001-11-26 01:37:07.85 with 165287 records.
Invoice_header table loaded successfully 2001-11-26 01:45:04.79 with 165321 records.

My objective is to locate and compare the table names in the file with an array which may possibly conatin these same names.

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: comparing two arrays
by jlongino (Parson) on Nov 26, 2001 at 20:48 UTC
    This should work. Don't forget to substitute your filename for the one I used.
    use strict; my @file; my @report = qw(sqltable mike_test sarak_mike); open INFILE, "<mms_tableload.txt"; ## The following statement stuffs the lowercased first "word" of each +record into @file. push @file, lc((split)[0]) foreach (<INFILE>); my $i = 0; foreach (@file) { print "\@file[", $i++, "] = '$_'\n"; } print "\n\n"; my %in_file = map{$_ =>1} @file; my $all_match = 1; foreach (@report) { if (! exists $in_file{$_}) { $all_match = 0; print "\@report value: '$_' is not in \@file.\n"; } }
    Where the data file for @file looks like this:
    Mike table loaded successfully 2001-11-26 00:34:58.61 with 284734 reco +rds. MiKe_Test table loaded sucessfully 2001-11-26 01:31:08.88 with 498 rec +ords. sarak_Mike table loaded successfully 2001-11-26 01:37:07.85 with 165 r +ecords. Inv_hdr table loaded successfully 2001-11-26 01:45:04.79 with 165321 r +ecords.
    The output:
    @file[0] = 'mike' @file[1] = 'mike_test' @file[2] = 'sarak_mike' @file[3] = 'inv_hdr' @report value: 'sqltable' is not in @file.

    --Jim