我正在尋找一個相當不確定的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