Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Re: Re: help needed on a foreach loop from hell!!!

by Ineffectual (Scribe)
on Jan 24, 2002 at 06:24 UTC ( [id://141114]=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://141114]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2024-04-26 00:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found