2011-08-04 21 views

cevap

5

uyarılarını kullanın özellikle birini karşılayan -liners.

Perl'in doğru veya yanlış adlandırılmış sabitleri yoktur ve uyarılar veya sıkı bir şekilde etkinleştirilmemiş bir "bareword" (bir sabit veya işlev olabilir ama olmayan bir şey) sessiz olarak bir dize olarak yorumlanır. Yani if("true") ve if("false") yapıyor ve dışındaki tüm dizeleri "" veya "0" doğrudur.

10

Eğer sıkı ile çalıştırırsanız:

Bareword "true" not allowed while "strict subs" in use at -e line 1. 

Bu dize "true" ya da her zaman doğrudur "false" olarak yorumlanır:

perl -Mstrict -e 'if(true) { print 1 }' 

sen nedenini tanınacak. sabitleri Perl tanımlanmamış, ancak bunu kendiniz yapabilirsiniz:

use constant { true => 1, false => 0 }; 
if(false) { print 1 } 
8

Sen barewords true ve false kullanıyor. Çıplak sözler Kötü bir şeydir. Eğer bu deneyin:

Bareword "true" not allowed while "strict subs" in use at - line 3. 
Execution of - aborted due to compilation errors. 

Herhangi tanımlı değeri 0 benzemiyor "gerçek" olarak kabul edilir:

use strict; 
use warnings; 
if (true){print 1} 

Muhtemelen böyle bir şey alırsınız. Tanımsız bir değer veya 0 (örneğin 0 veya "0") benzer bir değer "yanlış" olarak kabul edilir. Bu değerler için yerleşik bir anahtar kelime yok. Gerçekten sizi rahatsız sadece 0 ve 1 kullanmak (veya use constant { true => 1, false => 0}; sopa olabilir. :)

+0

Ben 4GL taşıma am Perl 5 kod ve sabitleri yardımcı olur. Onlar hakkında unutmuştum. Teşekkürler. – octopusgrabbus

İlgili konular