| 
 
     
- UID
 - 1 
 - 威望
 - 1240 点 
 - 金钱
 - 24019 金币 
 - 点卡
 - 317 点 
 
  | 
1#
 
发表于 2003-7-26 07:27
 |  只看该作者
 
 
 
 Perl 5.8.0 发布
古老的 Perl 永远也不停止创新的步伐,7月18日,Perl 5.8.0 发布了。  
5.8.0 的亮点主要有:  
- 更好的 Unicode 支持:  
自从 5.6 版以来, Unicode 支持已在各层面上大幅更新:  
- 支持 Unicode 3.2.0 版 (Perl 5.6.1 支持 3.0.1 版)  
- 在语言及内部层次上, 提供更普遍而平滑的 Unicode 环境  
- 正则表示式能够配合 Unicode 了  
- 提供 Encode 模块, 以支持现存的编码方式 (包括各种中/日/韩系统)  
- 多线程执行模式:  
「解释器多线程法」(interpreter threads, 简称「ithreads」) 是新的多线程执行  
模式. 我们强烈建议您用它来取代旧版的「5.005 多线程法」模式. 两者间主要的  
差异, 在于 ithreads 下必需明确宣告要共享的资料.  
- 新的输入/输出模式:  
新推出的 PerlIO 模式, 同时提供了源码层级的跨平台 stdio 实作, 以及更丰  
富的输出入控制架构.  
- 更精确的数值:  
之前的 Perl 版本依赖于您系统上的字串/数值转换函数; 这往往造成了跨平台  
的障碍, 以及错误的计算结果.  
- 64 比特支持:  
目前的 64 比特支持已经成熟 -- 若您的系统支持 64 比特的整数或地址空间,  
就可以在编译时指定使用这些功能.  
- 安全的信号 (signal) 处理:  
之前的版本里, Perl 在接收信号时可能会破坏解释器的内部状态.  
- 大量的新模块:  
Digest::MD5, file::Temp, Filter::Simple, libnet, List::Util,  
Memoize, MIME::Base64, Scalar::Util, Storable, Switch,  
Test::More, Test::Simple, Text::Balanced, Tie::File, ...  
- 彻底的兼容性测试:  
Perl 现在具备了六倍于 5.6 版的测试套件, 并且每日在各种平台上进行装设  
测试.  
[兼容性]  
- 二进制档案不兼容:  
主要由于 PerlIO 的导入, Perl 5.8 与先前的 Perl 版本之间并无「二进制兼容性」. 您可能会需要再次编译各个 XS 延伸模块.  
- AIX 动态载入:  
为了与 AIX 系统上的其他程序更加兼容, Perl 在 AIX 系统上启用了系统的动  
态载入, 而非早先的模拟方式.  
- 停用 64 比特平台上的 Perl Malloc 内存配置:  
Perl 的 malloc 函数在 64 比特定址的机器上似乎有许多问题. 因此, 我们现  
在预设使用系统原生的 malloc 函数.  
- 散列顺序又改变了:  
Perl 内部的散列函数又改成了较好的版本, 不过只要您的源码不依赖于特定的  
散列键顺序, 这就不成问题.  
- my 的属性改在执行阶段处理:  
my() 变数的属性目前改在执行阶段处理, 而非编译阶段.  
- REF(...) 取代了 SCALAR(...):  
为符合 ref() 的结果, 对参照 (reference) 的参照在字串里改以 "REF(...)"  
表示.  
- 更新的 Unicode 处理模式, 大幅减少了需要使用 "use utf8" 之处:  
在 Perl 5.6 版时, 资料是否视为 Unicode, 端视其运算是否处于 "use utf8"  
编译命令的有效范围内而定; 现在, Perl 5.8 直接将 "Unicode 性质" 连结到  
资料上. 因此, 目前只有在程序码内用到 UTF-8 字面值 (literal) 时, 才需  
使用 "use utf8". (在没有 "use utf8" 时, 为了保持与现存命令稿的兼容性,  
字面值仍视为字节处理.)  
- VMS: Socket 延伸模块动态化, Alpha 预设使用 IEEE 浮点数  
- Socket 延伸模块在 VMS 平台上改为动态载入; 这在极旧版的 VMS 上可能会  
造成问题.  
- OpenVMS Alpha 目前预设使用 IEEE 浮点数格式. 这样做的理由及细节, 请见  
README.vms.  
[用词改变]  
- 《骆驼书》(Programming Perl, 《Perl 程序设计》) 第三版内的「IO 规则」  
(IO discipline), 现在改称为「IO 层」(IO layer).  
[不建议使用]  
- dump():  
dump 指令的功能, 目前视同作废.  
- 5.005 多线程法模式已不建议使用  
请采用新的「解释器多线程法」模式.  
- 虚拟散列 (Pseudohash):  
使用者层级的虚拟散列语法将被移除, 改成比较简洁的操作界面. 此外, 内部的  
实作方式也必须更改, 因为它减缓了一般散列的存取速度.  
- "exec(串列)" 与 "system(串列)" 参数内的受污染 (tainted) 资料:  
目前这会触发警告讯息, 但在未来的版本里会变成致命错误.  
- tr///C, tr///U:  
这两个操作界面是个意外; 请采用 pack("C0", ...) 及 pack("U0", ...).  
[已知问题]  
- AmigaOS 无法装设 Perl 5.8.0.  
- 编译套件: 比特码编译及原生码编译仍然有问题.  
- Lvalue 左值函数仍然视为实验性质.  
- local() 与 tie() 的交互使用结果, 仍未清楚定义.  
- 系结(Tied) 或魔法(Magical) 阵列及散列并不会自动生成 (Autovivify).  
- 自我系结的阵列及散列, 目前禁用.  
再次提醒您, 请详阅 pod/perldelta.pod, INSTALL, 以及 README.平台  
 |   
 
 
 
 
                     我是一个呼吸着现在的空气而生活在过去的人 
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠 
                                     我已习惯了孤独,爱上孤独 
                                 他让我看清了自我,还原了自我 
                             让我再静静的沉思中得到快乐和满足 
                                   再孤独的世界里我一遍又一遍 
                                   不厌其烦的改写着自己的过去 
                                             延伸到现在与未来 
                                       然而那只是泡沫般的美梦 
                                 产生的时刻又伴随着破灭的到来 
                         在灰飞烟灭的瞬间我看到的是过程的美丽 
                                      而不是结果的悲哀。。。 
 | 
 
 
 
 |