LINUX.ORG.RU

Perl 5.8.8


0

0

Основные изменения:

- обновлена база поддержки юникода

- устранена пара дыр в suidperl

- скрипт "подгонки под сайт" по умолчанию не включен

- config.pm похудел

- обновление модулей

- find2perl обзавелся новыми опциями -iname, -path и -ipath

- улучшения в производительности, инсталяции и конфигурации

- багфиксы

К сожалению все еще остались проблемы с юникодом.

Source: ftp://ftp.cpan.org/pub/CPAN/authors/i...

Размер 10 Mb

>>> Подробности



Проверено: Dimez ()

> К сожалению все еще остались проблемы с юникодом.
И это в 21 веке. Мдя, грустно.

Korwin ★★★
()

>К сожалению все еще остались проблемы с юникодом.

Ну, сайт юникодный с юникодной базой у меня работает - и это главное. :)

suser
()

>К сожалению все еще остались проблемы с юникодом.

Одна из причин почему я перешел на Java

anonymous
()

Под проблемами с юникодом имеется ввиду это?

> It had been reported that running under perl's debugger when

> processing Unicode data could cause unexpectedly large slowdowns.

> The most likely cause of this was identified and fixed by Nicholas Clark.

Или что-то есть посерьезней?

anonymous
()
Ответ на: комментарий от anonymous

это достаточто серьезно - невозможность отладки объемного кода. например perl -d -mencoding=utf-8 -e '' - простейший вариант, так же есть варианты с use utf-8, однако в свете косяков utf8 в питоне - перл просто рулит. Ява конечно вне конкуренции в этом плане, utf там почти что идеален, но она порой немного ресурсоемка...

anonymous
()
Ответ на: комментарий от anonymous

По-моему "use utf-8" в Perl 5.8 уже не нужно использовать.

anonymous
()
Ответ на: комментарий от anonymous

а бейсик, как здесь недавно кто-то доказывал, еще кручастее!

anonymous
()
Ответ на: комментарий от anonymous

мне тоже интересно, какие косяки с utf-8 в питоне.

smartly ★★★
()
Ответ на: комментарий от sws

> А ссылочка к подробностям на 5.8.7! Не только ссылочка к подробностям, но и список изменений в тексте новости относятся к 5.8.7! И про проблемы с юникодом в 5.8.8 ничего не говорится.

anonymous
()
Ответ на: комментарий от Korwin

> И это в 21 веке. Мдя, грустно.

Unicode in package/class and subroutine names does not work

One can have Unicode in identifier names, but not in package/class or subroutine names. While some limited functionality towards this does exist as of Perl 5.8.0, that is more accidental than designed; use of Unicode for the said purposes is unsupported.

One reason of this unfinishedness is its (currently) inherent unportability: since both package names and subroutine names may need to be mapped to file and directory names, the Unicode capability of the filesystem becomes important-- and there unfortunately aren't portable answers.

Очевидно, что проблема тут "как сделать переносимо и не выстрелить себе и соседу в ногу".

Casus ★★★★★
()
Ответ на: комментарий от papazol

например в питоне итераторы для uft 8 regexp обрабатывают выражение побайтово, а не посимвольно, что вызывает порой довольно смешные результаты;

[^A-Z]* для utf строки - смех и слезы. вообщем, несмотря на наличие unicode флага для регулярных выражений - там все очень запущено. Да можно почитать архивы питоновские - как там народ с utf радость испытывает...

это для Python 2.4.2 (#1, Nov 14 2005, 21:21:11)

anonymous
()
Ответ на: комментарий от Davidov

> А нафига имена подпрограмм в unicode?

Это Korwin'у вопрос, ему было грустно от того, что не работает пока. Я пока достаточно вменяем, чтобы не грустить по такому поводу :)

Casus ★★★★★
()
Ответ на: комментарий от anonymous

> а кому вообше такое извращение нада?

> чем плохо когда прога написана на энглише?

Вы не поверите - Perl6 умеет (уже сейчас) уникодные идентификаторы. Более того, некоторые из встроенных операторов записываются уникодным (non-ASCII) символами (¥, например; еще какие-то есть). Нет, у них, конечно, есть многосимвольные ASCII-эквиваленты.

anonymous
()
Ответ на: комментарий от anonymous

utf problems in python

> например в питоне итераторы для uft 8 regexp обрабатывают выражение побайтово, а не посимвольно, что вызывает порой довольно смешные результаты

если не очень напрягает -- напишите подробный багрепорт, люди будут благодарны.

anonymous
()
Ответ на: комментарий от anonymous

>например в питоне итераторы для uft 8 regexp обрабатывают выражение побайтово, а не посимвольно, что вызывает порой довольно смешные результаты;

Так и должно быть. Для обработки юникода в питоне есть соответствующий тип строк.

>Да можно почитать архивы питоновские - как там народ с utf радость испытывает...

конверируешь в тип unicode - и наступает радость.

smartly ★★★
()
Ответ на: комментарий от anonymous

мда, видать из всего Perl'a только название и видел

vadiml ★★★★★
()

Восхищен.
Интересно, когда заработает perlcc наконец-то?

anonymous
()
Ответ на: комментарий от anonymous

Должен заметить, что если хочется посимвольной обработки, то в питоне, вообще-то, есть unicode. В смысле, строки в некотором внутреннем многобайтном представлении (грубо говоря, wchar'ах). Обрабатывать текст в транспортных кодировках, вообще-то, непроизводительно (точнее, или неполнофункционально, или непроизводительно).

Оставьте транспортным кодировкам транспортировку данных :-).

AlexM ★★★★★
()
Ответ на: комментарий от papazol

> наверное для того, чтобы вместо
> main {}
>...
>sub DESTROY {}
>
>можно было написать

>главное {}
>...
>суб УБИТЬ {]


это все прекрасно реализуется с помощью фильтров.

anonymous
()
Ответ на: комментарий от smartly

LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=
ezh@obelisk ~/workspace/Ezh.engine $ python
Python 2.4.2 (#1, Nov 22 2005, 11:52:25)
[GCC 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> print re.match('<[^ABC]*>', '<DEF>', re.UNICODE).group()
<DEF>
>>> print re.match('<[^АБВГ]*>', '<123ДЕЁЖ>', re.UNICODE).group()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'NoneType' object has no attribute 'group'
>>>
где тут что в unicode конвертировать????
я хочу чтоб заработало выражение re.match('<[^АБВГ]*>', '<123ДЕЁЖ>', re.UNICODE) smartly - подскажи плз

anonymous
()
Ответ на: комментарий от AlexM

А, ну, если уже есть байт-стринг, то ничего не мешает сделать decode:

bs = file("some.utf").read()
us = bs.decode("utf-8")

us теперь имеет тип unicode.

AlexM ★★★★★
()
Ответ на: комментарий от AlexM

>print re.match(u'<[^АБВГ]*>', u'<123ДЕЁЖ>').group()

Только еще, желательно, проставить в начале файла кодировку файла.

smartly ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.