Perl: the Markov chain saw PerlMonks

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

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

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?

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.

Create A New User
Node Status?
node history
Node Type: note [id://782116]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (13)
As of 2016-06-27 21:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My preferred method of making French fries (chips) is in a ...

Results (345 votes). Check out past polls.