Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: remove blank lines with regex

by arunhorne (Pilgrim)
on May 21, 2002 at 14:46 UTC ( [id://168141]=note: print w/replies, xml ) Need Help??


in reply to remove blank lines with regex

You could try:

$line =~ s!$/+!$/!sg;

Note the replacement of / with ! in the regex. This is perfectly allowed and allows te easy use of \$.

In my opinion this is better than s/\n+/\n/ as it allows for the possibility that you line terminator $/ has been set to something else (admittedly, this must be done explictly by you). However taking this approach is a safer option from the point of view of bugs being introduced if you bury s/\n+/\n/ in a library and then start getting random errors from users on the basis they have chnaged \$. I'm not however advocating that what I just said doesn't have a counter argument that works the other way.

Arun

Replies are listed 'Best First'.
Re^2: Remove Blank Lines Regex
by tadman (Prior) on May 21, 2002 at 17:56 UTC
    Better, yes, but broken? If $/ consists of multiple characters then it will not function as intented. Consider this as an example:
    my $foo = "Camel meme power supreme!"; my $bar = "me"; $foo =~ s/$bar+/$bar/g;
    The answer is not what you'd expect, the string remains unchanged. It seems that brackets are required so that the entire variable is repeated and not just the last character of the variable. "meme" to "me" and not "mee" to "me":
    $foo =~ s/($bar)+/$bar/g;
    So this translates back into something like this:
    $line =~ s!($/)+!$/!g;
    /s modifies ., which is not used, so ditch it. You don't need to use /s just to work on multi-line strings, but sometimes you want to.

Log In?
Username:
Password:

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

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

    No recent polls found