Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^3: How do I quickly strip blank space from the beginning/end of a string?

by ikegami (Patriarch)
on Jul 21, 2009 at 23:06 UTC ( [id://782116]=note: print w/replies, xml ) Need Help??


in reply to Re^2: How do I quickly strip blank space from the beginning/end of a string?
in thread How do I quickly strip blank space from the beginning/end of a string?

Also, you made the point that none of my input ends with spaces. I think that's generally true in real life usage too.

Then shouldn't you be benchmarking space detection?

  • Comment on Re^3: How do I quickly strip blank space from the beginning/end of a string?
  • Download Code

Replies are listed 'Best First'.
Re^4: How do I quickly strip blank space from the beginning/end of a string?
by blahblahblah (Priest) on Jul 22, 2009 at 01:12 UTC
    Good point. I've tried the 3 methods below:
    if ($x =~ /\s/)
    and
    if (substr($x, -1) =~ /^\s/
    and
    if (rindex($x," ") == 0 || rindex($x,"\r") == 0 || rindex($x,"\n") == + 0 || rindex($x,"\t") == 0)
    The rindex method is much faster on the data that has spaces; otherwise the substr method is the fastest. Any other good ideas, keeping in mind that the data (I think) won't often contain any trailing spaces?

      $x =~ /\s/
      doesn't work. It should be
      $x =~ /\s\z/
      Bonus: The speed of fixed version won't depend on the length of the string like the broken one did.

      if (rindex($x," ") == 0 || rindex($x,"\r") == 0 || rindex($x,"\n") == 0 || rindex($x,"\t") == 0)
      doesn't work. It should be
      if (rindex($x," ") == length($x)-1 || rindex($x,"\n") == length($x)-1 || rindex($x,"\t") == length($x)-1 || rindex($x,"\r") == length($x)-1)
      Or just
      my $ch = substr($x, -1); $ch eq " " || $ch eq "\n" || $ch eq "\t" || $ch eq "\r"

      And then there's
      length($x) && index(" \n\t\r", substr($x, -1)) >= 0

      You should be concentrating on writing code that actually works before worrying about operations that take 0.00001 second.

Log In?
Username:
Password:

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

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

    No recent polls found