Thread Perl 5.22 (24 answers)
Opened by lichtkind at 2015-05-12 08:49

betterworld
 2015-05-23 17:48
#181139 #181139
User since
2003-08-21
2613 articles
ModeratorIn

user image
2015-05-23T14:26:31 lichtkind
weil genau was du sagtest, daß:

Quote
Mit dem Wechsel von Python 2.7 auf 3.* ... werden literale Zeichenketten standardmäßig als Unicodestrings statt als Bytestrings interpretiert ....
macht auch
Code (perl): (dl )
use feature 'unicode_strings';


Also ich sehe da nicht so den Zusammenhang. Wenn String-Literale im Quelltext standardmäßig als Unicode behandelt werden, ist das meines Erachtens etwas anderes als das, was unicode_strings macht.

Code: (dl )
1
2
#!/usr/bin/python3
print(len('hä'))


Code: (dl )
1
2
3
use feature 'say';
use feature 'unicode_strings';
say length('hä');


Das erste gibt 2 aus, das zweite (Perl) gibt 3 aus. Die Behandlung von String-Literalen ändert sich also nicht mit unicode_strings. (Sowas kann man in Perl mit "use utf8" erreichen.)

Imho haben Perl und Python in allen Versionen seit einigen Jahren ganz vernünftige Unicode-Unterstützung. Python 3 ist meines Erachtens aber etwas nerviger, weil man keine Bytes und Unicode-Strings miteinander verwurschteln kann, selbst wenn man weiß, dass es alles nur Ascii-Zeichen sind.

Aber was genau jetzt das superrevolutionäre an unicode_strings ist, habe ich ehrlich gesagt noch nicht verstanden (hab das perldoc aber auch nur kurz angeguckt).


Also vielleicht mal gucken, wo hier das "dann hast was nicht mitgekriegt" hingehört :) Aber ist ja auch wurscht ;)
Last edited: 2015-05-23 17:58:14 +0200 (CEST)

View full thread Perl 5.22