in reply to Re: Re: help needed on a foreach loop from hell!!!
in thread help needed on a foreach loop from hell!!!

Hopefully this isn't offensive, but personally I'd rewrite your code as:
print "Enter file name and path of .ins to parse:\n"; my $filename1 = <STDIN>; die "File $filename1 does not exist\n" unless (-e $filename1); print "Enter file name and path of .rcs to search:\n";<br> my $filename2 = <STDIN>; die "File $filename2 does not exist\n" unless (-e $filename2); open (FILE, "<$filename1) or die "Can't open file $filename1 :$!\n"; my @file = <FILE>; close FILE; foreach my $line (@file) {
Depending on what you're parsing here, I'd probably use a split rather than $1. YMMV.
ie: If file line was "EditorName Susan Hammel" I'd do
if ($line =~ /EditorName/) { my @name = split(/\s+/, $line); my $first = $name[1]; my $last = $name[2]; } foreach my $line2 (@file) { if ($line2 =~ /EditorCommand/) { my @commands = split(/s+/, $line2); shift @commands; # To remove the EditorCommand - Requires line that +looks like "EditorCommand print paste copy" } open (OUTPUT, ">>test.txt"); foreach my $com (@dcommands) { my $pattern = $word1 . ":" . $com; my $test = in_file($pattern, $filename2); if ($test) { print OUTPUT "Found $pattern in $filename2 \n"; } else { print "$pattern not in $filename2 \n"; } } exit; #### SUBS #### sub in_file { my $pattern = shift; my $filename2 = shift; open INFILE, $filename2 or die "Can't open $filename2: $!\n"; my $found = 0; while (<INFILE>) { if (/$pattern/) { $found = 1; last; } close FILE; return $found; }
HTH, YMMV
'Fect

Replies are listed 'Best First'.
Re: Re: Re: Re: help needed on a foreach loop from hell!!!
by theguvnor (Chaplain) on Jan 24, 2002 at 07:10 UTC
    One **tiny** correction: you've got an HTML break tag ('<br>') at the end of the 4th line:

       print "Enter file name and path of .rcs to search:\n";<br>

    That <br> tag doesn't belong in the code. Sorry if I'm nitpicking too much, but if Kentdn is looking for perl problems the last thing he needs is an extra bit of formatting thrown in :)

    Good luck Kentdn!

      Yeah, I didn't realize that the code tags picked up the enters without needing html breaks, so I had to go back and delete them all. ;)
      'Fect