MudGuard: Zugriff auf x-tes Zeichen im Sting

Beitrag lesen

Hi,

Das könnte daran liegen, dass der "direkte Zugriff auf ein Zeichen" in Perl gar nicht so trivial realisierbar ist, wie es ausschaut.
Zuerst denkt man ja: Ein Zeichen == Ein Byte, also einfach Stringposition plus Offset berechnen, und den dort gefundenen Bytecode als Zeichen behandeln.
Da Perl seit Version 5.8 aber Strings intern als UTF-8 speichert, wenn es notwendig ist, gilt die Zuordnung Zeichen==Byte nicht mehr - die Berechnung des Offsets wird wesentlich aufwendiger, und die Sache insgesamt kompliziert.

Naja, ob das intern einfach ist, dürfte doch keine Rolle spielen - wenn es danach ginge, dürften Dinge wie m//, s/// usw. in Perl eigentlich nicht existieren, denn die sind doch wesentlich aufwendiger zu implementieren ;-)

Auszug aus der Perl-Doku:

Description:
Perl is a language optimized for scanning arbitrary text files, extracting information from those text files [...]
The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal).

Gerade das "easy to use" (aber auch das "complete") ist _hier_ (also bezogen auf n-tes Zeichen des Strings) aber m.E. nicht erfüllt - beim "scanning of text files" kommt es durchaus öfter vor, daß eben das n-te Zeichen eines Strings benötigt wird ...

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.