19.12.2007 13:13
Релиз Perl 5.10.0
|
 |
|
Анонсирован выход релиза Perl 5.10.0.
Perl 5.10.0 включает в себя некоторые элементы Perl 6, а также:
- Новые возможности регуляных выражений
- Оптимизированную систему распределения памяти
- Переработанный механизм работы с UTF-8 строками
- Возврат к старой схеме обработки сигналов (до 5.8)
- В базовый состав включены модули: Math::BigInt::FastCalc, Compress::Zlib, IO::Zlib, Archive::Tar, Digest::SHA, ExtUtils::CBuilder, ExtUtils::ParseXS, Module::CoreList.
- Реализован оператор "// " ($a // $b эквивалентно defined $a ? $a : $b; $c //= $d эквивалентно $c = $d unless defined $c).
|
|
|
- Главная ссылка к новости (http://search.cpan.org/~rgarcia/perl-5.1...)
- OpenNews: Языку Perl исполнилось 20 лет
- Differences between the 5.8.8 release and the 5.10.0 release.
|
| Тип: К сведению |
| Ключевые слова: perl, (найти похожие документы) |
| При перепечатке указание ссылки на opennet.ru обязательно |
| Реклама |
|
|
|
| |
| 1.1, vadiml, 13:22, 19/12/2007 [ответить] [смотреть все]
| +/– | |
> Переработанный механизм работы с UTF-8 строками
это, наверное, самое нужное, а то приходится на каждом углу указывать что используется utf8 и всё равно проверять правильно ли используется
|  | | |
| |
| 2.2, зю, 15:05, 19/12/2007 [^] [ответить] [смотреть все]
| +/– |
а где именно надо указывать?
я может что-то делаю не так, но ни в одном месте у меня нет указания на utf8 и все строки таковыми и остаются без каких-либо телодвижений.
юзаю бздю и линукс, правда, все окружение по возможности всегда utf8.
кстати, перл и выбрал из-за того что никакого гимора с юникодом.
|  | | |
| |
| |
| 4.7, 2l00p, 07:44, 21/12/2007 [^] [ответить] [смотреть все]
| +/– | |
Linux a6m 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686 GNU/Linux
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
------------------
#!/usr/bin/perl -w
use encoding "utf8";
$_ = "Жизнь, она как жёрдочка в курятнике - короткая и вся в дерьме.";
s/\w{8}/СЛОВО/g;
print $_;
<>;
------------------
Всё отлично работает.
|  | | |
|
| 3.4, angra, 21:48, 19/12/2007 [^] [ответить] [смотреть все]
| +/– |
Поэкспериментируй с tr, например замени часть латинских букв вроде c,m,o,a на русские или наоборот.
|  | | |
|
|
| 1.6, Stanislaus, 15:54, 20/12/2007 [ответить] [смотреть все]
| +/– | |
Ураа!
Новый switch воодушевляет.
given ($foo) {
when (/^abc/) { $abc = 1; }
when (/^def/) { $def = 1; }
when (/^xyz/) { $xyz = 1; }
default { $nothing = 1; }
}
Насчет плохой работы utf8:
use utf8; # чтобы указать, что исходник программы написан с использованием utf-8
# если данные поступают из неизвестного источника и Perl не может определить, что это utf-8:
# Используйте модуль Encode
# то есть, например, чтобы
my ($data) = $sth->fetchrow_array;
$data =~ s/морожное/пирожное/gi;
# сработало нормально, нужно указать Perl, что исходник в UTF-8, и скорее всего бит Unicode в $data не установлен.
use utf8;
use Encode;
...
my ($data) = map {Encode::decode('UTF-8',$_)} $sth->fetchrow_array;
$data =~ s/морожное/пирожное/gi;
|  | | |
|
|
| Ваш комментарий |
|
|
| |
|