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 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.
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
use Perl;
program
fulfillment