There's more than one way to do things | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
There are some faster solutions which sometimes can be really slow, depending on how many whitespaces a string contain.
If a string contains a lot of whitespaces. Example: my $str = q{ }. q{a b c d e f g h i j} x 200 . q{ }; MRE book suggests this code: $str =~ s/^\s+((?:.+\S)?)\s+$/$1/s; I admit, I was surprised how fast it is compared with: "s/^\s+//" and his brother "s/\s+$//". They can't even compete at a benchmark, they are too slow with the above example! (that's because of the second regex which match at the end of the string, if fails so many times if string contains a lot of whitespaces (see re 'debug')). Another approach (I know is silly, but is faster in some casses): Benchmark using the above example:
In reply to Re: How do I remove whitespace at the beginning or end of my string?
by trizen
|
|