Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: Trim blanks from the beginning and end of a multi-line string

by JavaFan (Canon)
on Jan 29, 2012 at 19:19 UTC ( [id://950626]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Trim blanks from the beginning and end of a multi-line string
in thread Trim blanks from the beginning and end of a multi-line string

s{ \A \s+ | \s+ \z }{}xmsg;
I don't think this deserves any price for clearity.

You're using /m and /s while you aren't using any construct for which this is relevant. This just leads to more people like the OP who will think that using /m and /s is a good idea, without understanding their meaning. And then use it at the wrong time. Furthermore, I don't see the point of /g. It's just an artificial way of putting two constructs into one. The /x j u s t  m a k e s  i t  l i k e  y o u r  r e g e x p  s u f f e r s  f r o m  b a d  k e r n i n g .

I'd write it as:

$str =~ s/^\n+//; $str =~ s/\n+$//;
if only because it's idiomatic.

Replies are listed 'Best First'.
Re^4: Trim blanks from the beginning and end of a multi-line string
by AnomalousMonk (Archbishop) on Jan 29, 2012 at 21:36 UTC
    ... this ...

    "This", of course, follows the Perl Best Practices (PBP) regex recommendations of TheDamian, which I have said in the past I find compelling.

    This just leads to more people like the OP who will think that using /m and /s is a good idea, without understanding their meaning. And then use it at the wrong time.

    But the point of always using /m and /s is that the  ^ $ . operators always behave in the same way and so are more easily understood in the first place. If better understood, it is less likely there will be a "wrong time" or wrong context in which these operators will be used (if it is appropriate to use them at all).

    ... I don't see the point of /g. It's just an artificial way of putting two constructs into one. ... I'd write it as ...

    But the way you would write it could be described as "an artificial way of putting one construct into two." And what but artifice is our beloved Art of Programming? (Or is it the beloved Art of Sausage Making? Either way, still artifice.)

    The /x ...

    PBP has a separate discussion of the rationale for this. Tedious to retail it here. Update: Although I will say that, as I grow older, my tired eyes thirst for whitespace as a wanderer in a desert thirsts for cool, sweet water.

    You, JavaFan, and others, notably BrowserUk, have advanced many strongly argued disagreements with the PBP recommendations in general and with the regex recommendations in particular. Of course, I accept your choices while asserting my right to my own. As a great man once said, "These are my principles. If you don't like them, I've got others."

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-03-28 17:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found