Es gibt außer substr() noch andere Möglichkeiten zur Begrenzung, die sind jedoch byte-orientiert. substr() ist zeichenorientiert, interessant wird das Thema bei utf-8, wo also Zeichen mehr als 1 byte lang sind, hierzu hilft das Pragma utf8;
Das ist falsch, wenn die Daten von aussen kommen.
Na Struppi, soso, "von aussen"...(???), hast Du immer noch nicht gelernt, mit UTF-8-codierten Zeichen richtig umzugehen?
Bitte? Les mal mit use utf8 utf-8 kodierte Textdateien ein.
#!/usr/bin/perl -w
use strict;
# In utf.txt ist ein € in utf-8 kodiert
open FH, '<', 'utf.txt';
my $c = <FH>;
close FH;
no utf8;
print length($c); # 3
use utf8;
print length($c); # 3
Du siehst es hat keine Wirkung.
Struppi.