Perl 5.12中最有趣/最有用的新东西是什么?

hil*_*llu 5 perl

我记得迅速采用given .. when,say,//,和智能匹配运算时的Perl 5.10苏醒过来.

你认为Perl 5.12.0引入了哪些最有用的修补程序和功能?

Bra*_*ert 6

while( readdir $dir ){}现在工作得更像while( readline $file ){}.

perl -MO=Deparse -e'while( readline $f ){}'
Run Code Online (Sandbox Code Playgroud)
while (defined($_ = <$f>)) {
    ();
}
Run Code Online (Sandbox Code Playgroud)

<$f> 是相同的 readline $f


这就是v5.11.2之前的Perl版本的处理方式 while( readdir $dir ){}

perl-5.10 -MO=Deparse -e'while( readdir $d ){}'
Run Code Online (Sandbox Code Playgroud)
while (readdir $d) {
    ();
}
Run Code Online (Sandbox Code Playgroud)

值得注意的是,如果存在名称为的文件或目录,则上述操作将无法正常工作0.这并不重要,因为它无论如何都没有做任何有用的事情.


在Perl版本5.11.2中添加了一个补丁,使其更符合处理while( readline $file ){...}.

perl-5.12.0 -MO=Deparse -e'while( readdir $d ){}'
Run Code Online (Sandbox Code Playgroud)
while (defined($_ = readdir $d)) {
    ();
}
Run Code Online (Sandbox Code Playgroud)

我想指出,是那个提供补丁的人.这是我在Perl核心中尝试修复的第一件事.所以它也是我写的第一个补丁,它成为了Perl.

  • 恭喜! (2认同)

tse*_*see 5

到目前为止,这是我最喜欢的功能:

use 5.012; # enables 'use strict' implicitly!
Run Code Online (Sandbox Code Playgroud)