Clear questions and runnable code get the best and fastest answer |
|
PerlMonks |
Re: How do I remove whitespace at the beginning or end of my string?by trizen (Hermit) |
on Jan 29, 2012 at 14:33 UTC ( [id://950578]=note: 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 Section
Seekers of Perl Wisdom
|
|