加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl:而没有条件

发布时间:2020-12-15 21:26:47 所属栏目:大数据 来源:网络整理
导读:根据 doc,while语句执行块,只要表达式是 true.我不知道为什么它成为一个空的表达式的无限循环: while () { # infinite loop ...} 它只是在文档中的不准确? 解决方法 $ perl -MO=Deparse -e 'while () { }'while (1) { ();}-e syntax OK 看来while(){}和w
根据 doc,while语句执行块,只要表达式是 true.我不知道为什么它成为一个空的表达式的无限循环:
while () { # infinite loop
 ...
}

它只是在文档中的不准确?

解决方法

$ perl -MO=Deparse -e 'while () { }'
while (1) {
    ();
}
-e syntax OK

看来while(){}和while(1){}是等价的。还要注意,空的括号*被插入空块。

预定义编译器行为的另一个示例:

$ perl -MO=Deparse -e 'while (<>) { }'
while (defined($_ = <ARGV>)) {
    ();
}
-e syntax OK

我会说,这只是文档不报告一个特殊情况。

* – 确切地说,插入存根操作码。它什么都不做,但服务goto目标为enterloop操作码。没有真正的理由注意到这一点。 Deparse表示使用空括号的这个存根操作,因为括号不生成代码。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读