FAQ
I have a script with these three lines and it works

$line =~ s/^\s*//; # Remove leading spaces
next if ($line =~ /^#/); # Skip line if it starts with #
next if ($line =~ /^\s*$/); # Ship blank lines

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.

How can I avoid these warnings with the regexp




TIA



Owen

Search Discussions

  • John W. Krahn at Jun 26, 2005 at 4:51 am

    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

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupbeginners @
categoriesperl
postedJun 26, '05 at 1:21a
activeJun 26, '05 at 4:51a
posts2
users2
websiteperl.org

2 users in discussion

John W. Krahn: 1 post Owen: 1 post

People

Translate

site design / logo © 2021 Grokbase