in reply to How to split, join and trim leading / trailing white space

Your posts on the topic make it so much harder and weirder than it should be–

moo@cow~>perl -CSD -le '$_ = " \N{U+5317}\N{U+4EB0}  "; print "<$_>"; s/\A\s+|\s+\z//g; print "<$_>"; print join " ", split //;'
< 北亰  >
<北亰>
北 亰
  • Comment on Re: How to split, join and trim leading / leading white space

Replies are listed 'Best First'.
Re^2: How to split, join and trim leading / leading white space
by haukex (Archbishop) on Sep 06, 2017 at 08:37 UTC

    On Perl v5.22 and higher, splitting on \b{gcb} (extended grapheme cluster boundary) might be better:

    $ perl -CSD -le 'print map "-$_- ", split //, "u\x{0308}ber"'
    -u- -̈- -b- -e- -r- 
    $ perl -CSD -le 'print map "-$_- ", split /\b{gcb}/, "u\x{0308}ber"'
    -ü- -b- -e- -r- 
    $ perl -CSD -le 'print map "-$_- ", split //,
        "k\x{0301}u\x{032D}o\x{0304}\x{0301}n"'
    -k- -́- -u- -̭- -o- -̄- -́- -n- 
    $ perl -CSD -le 'print map "-$_- ", split /\b{gcb}/,
        "k\x{0301}u\x{032D}o\x{0304}\x{0301}n"'
    -ḱ- -ṷ- -ṓ- -n- 
    

    (If the 2nd and 4th outputs above aren't displaying correctly, like in my browser, they should be "-ü- -b- -e- -r-" and "-ḱ- -ṷ- -ṓ- -n-".)

    As an alternative in Perl v5.12 and above, \X can be used. Update 2: E.g. split /\X\K(?=\X)/, ...

    Update: Made last sentence more clear.

Re^2: How to split, join and trim leading / leading white space
by thanos1983 (Parson) on Sep 06, 2017 at 08:12 UTC

    Hello Your Mother,

    Thanks a lot for the time and effort. I was under the impression that it should be done the trim process after the split.

    It looks like a was wrong :). Thanks again, BR.

    Seeking for Perl wisdom...on the process of learning...not there...yet!