我正在寻找一个相当不确定的question关于是否最好使用(;;)或while(1)当你想做一个无限循环,我看到一个有趣的解决方案,在C你可以#define
“EVER”作为常数等于“;;”并从字面上循环for(EVER)
。为什么这不会永远运行?
我知道定义一个额外的常量来做这个可能不是最好的编程实践,但纯粹是为了教育目的,我想看看这是否也可以用Perl来完成。
我试图让Perl等效,但它只循环一次,然后退出循环。
#!/usr/bin/perl -w
use strict;
use constant EVER => ';;';
for (EVER) {
print "FOREVER!\n";
}
输出:
FOREVER!
为什么不这项工作在Perl?
啊,我明白了......这是否意味着无法在perl中模仿这种功能?在这一点上,我只是好奇,看看是否可以做到。 – tjwrona1992 2014-11-20 20:58:49
您可以使用[源代码过滤器](http://perldoc.perl.org/perlfilter.html)将它们一起破解。 – 2014-11-20 20:59:56
@ tjwrona1992你可以用字符串eval和变量插值来实现。例如。 ($ ever)''eval“...”'但是,为什么当你可以简单地使用while循环呢? '而(EVER)...' – TLP 2014-11-20 22:47:02