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.