That is almost correct, but it does remove a line break in the middle of the string it shouldn't
Who says it shouldn't?
The OP wanted whitespaces removed, that is what \s means, whitespaces (\n, \r, \t, \f, and " ")
use YAPE::Regex::Explain;
print YAPE::Regex::Explain->new( qr/^\s+/ )->explain;
print YAPE::Regex::Explain->new( qr/\s+$/ )->explain;
__END__
The regular expression:
(?-imsx:^\s+)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
^ the beginning of the string
----------------------------------------------------------------------
\s+ whitespace (\n, \r, \t, \f, and " ") (1 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
The regular expression:
(?-imsx:\s+$)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
\s+ whitespace (\n, \r, \t, \f, and " ") (1 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
New questions go in
Seekers of Perl Wisdom (see
Where should I post X?) , don't worry, yours will be moved there shortly