So, I'm trying (for whatever reason) to split a string into its component characters. This is what I do:

my @letters = split //, @text

But there are some non-ASCII characters (quite a variety, actually) in the text, so in the code, there are the following lines:

use locale; use POSIX qw(locale_h); use POSIX; use Encode; my $old_lcall = setlocale(LC_ALL); my $old_ctype = setlocale(LC_CTYPE); setlocale(LC_ALL,"cs_CZ.utf8"); setlocale(LC_CTYPE,"cs_CZ.utf8"); # ...the $text variable has also been encoded as UTF-8 (the # hyphenated version), using the encode function provided # by use Encode; my @letters = split //, $text; # and at the end of the code, set the locales back: setlocale(LC_ALL, $old_lcall); setlocale(LC_CTYPE, $old_ctype);

Looking at the output, split reads the string in $text byte-by-byte (while sort, for example, works as it should under the locale). So the question is, o wise Perl monks, how do I get split to obey the locale as well?


In reply to Split is ignoring locale settings by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.