SORU
26 NİSAN 2012, PERŞEMBE


Hiçbir koşul ise Perl:

** 12, göre while deyimi ifadesi true olduğu sürece blok yürütür. Boş bir ifade ile sonsuz bir döngü olur merak ediyorum:

while () { # infinite loop
 ...
}

Sadece doktor yanlışlık mı?

CEVAP
26 NİSAN 2012, PERŞEMBE


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

while () {} while (1) {} eşdeğer gibi görünüyor. Ayrıca boş parens* boş blok eklenir unutmayın.

Önceden tanımlanmış derleyici davranış: bir başka örneği

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

Bu sadece doktorlara özel bir durum değil, rapor olduğunu söyleyebilirim.

* -; hassas, stub işlem kodu eklenir. Hiçbir şey yapmaz, ama enterloop işlem kodu için git bir hedef yapar. Bu not için gerçek bir sebep yok. Deparse parens kodu oluşturmak olmadığından stub bu operasyon boş parens kullanarak gösterir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006
  • Yo Mama

    Yo Mama

    18 EYLÜL 2005