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

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • George McCarron

    George McCar

    29 Mayıs 2013
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013