Re: Regex help
- From: krahnj@xxxxxxxxx (John W. Krahn)
- Date: Sat, 25 Jun 2005 21:51:22 -0700
Owen wrote:
I have a script with these three lines and it works
$line =~ s/^\s*//; # Remove leading spaces
You should use \s+ instead of \s* because it is more efficient.
next if ($line =~ /^#/); # Skip line if it starts with # next if ($line =~ /^\s*$/); # Ship blank lines
You removed the whitespace two lines up so there is nothing for \s to match.
I can replace lines 1 and 2 above with
next if($line =~ /\s+|#/);
However my attempts to replace all three lines
next if($line =~ /\s+|#.*$/);
gives a warning
Use of uninitialized value in concatenation (.) or string and produces return vale? of 1 for blank lines.
I don't get that warning with that regular expression so it must be something else in your code that is causing it.
How can I avoid these warnings with the regexp
next if $line =~ /^\s*$|^\s*#/;
John -- use Perl; program fulfillment .
- References:
- Regex help
- From: Owen
- Regex help
- Prev by Date: Regex help
- Next by Date: Mysql and PERL
- Previous by thread: Regex help
- Next by thread: Mysql and PERL
- Index(es):