Your immediate problem is that you read all of file_compare in the first iteration of the outer loop while handling the first clients line, but don't reset to the start of the file_compare files for the next iteration.

However, that is a really bad way to do it. You end up reading the file_compare file right through for every line of the clients file which likely to be very slow! Much better is to build a list of clients on a pass through the client list file, then use that list in a separate loop for processing the log file. Consider:

use strict; use warnings; my $clientList = <<DATA; fred bob DATA my $backupData = <<DATA; joe,2,3,wilma fred,1,3,wilma bob,2,3,freda freda,7,2,fred DATA my $outputData; open (my $clientsFile, '<', \$clientList) || die "Can't open clients: +$!\n"; my @clients = <$clientsFile>; close $clientsFile; chomp @clients; my $match = '\b(?:' . (join '|', @clients) . ')\b'; open (file_compare, '<', \$backupData) || die "Can't open file_compare: $!\n"; open (CSV_OUT, '>', \$outputData) || die "Unable to open lastbackup.cs +v: $!"; print CSV_OUT "SERVER,CLIENT,LAST SUCCESSFUL FULL,LAST SUCCESSFUL INCR +,LAST ATTEMPT\n"; while (<file_compare>) { if (m/$match/) { print CSV_OUT "$_"; } } close CSV_OUT; close file_compare; print $outputData;

Prints:

SERVER,CLIENT,LAST SUCCESSFUL FULL,LAST SUCCESSFUL INCR,LAST ATTEMPT fred,1,3,wilma bob,2,3,freda freda,7,2,fred

Perl is environmentally friendly - it saves trees

In reply to Re: Newbie can't figure out looping a while (if) by GrandFather
in thread Newbie can't figure out looping a while (if) by Urbs

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.