Here is some example code that depicts one way you can eliminate the if() statements. Put your regexes into an array, and loop over them all at once per line. The $i variable is simply there to show that all regexes are being searched, and performs no functional use.
#!/usr/bin/perl use warnings; use strict; my @regexes = qw(one two three); my $line = "this is thREE"; my $i = 1; for my $regex (@regexes){ if ($line =~ /$regex/i){ print "$i\n"; } $i++; }
Also, although just preference, I like to write my opens like the following. I feel it's cleaner. Note the use of $! in the die() statement; it explains *why* the file couldn't be opened. Also note the use of 'my'... you should be using this to define each variable. You'll have to do this when you implement use strict; as I stated in an earlier post.
open my $log_report, '>>', $log_file or die "Can't open the file $log_file: $!";
-stevieb
In reply to Re: Perl File Parsing - My Code Works, but it's Ugly!
by stevieb
in thread Perl File Parsing - My Code Works, but it's Ugly!
by Nico
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |