2015-05-07 31 views
-7

我一直在想這一個多年...在Perl中,存儲在一個變量時數0 wronging打印時轉換爲「」字符串。如何解決這個問題?在Perl中,如何讓一個變量保存數零印爲「0」,而不是「」

例如:

$X = 0; 
print "X = $x\n"; 

人們會想到這會打印: X = 0

,而不是它打印: X =

有一種簡單的方法來正確地作出這個打印而不用像這樣編寫垃圾代碼:

$x = 0; 
$xstr = !$x ? "0" : $x; 
print "X = $Xstr\n"; 

這是我真正討厭perl的一件事,當它試圖編寫執行數學和打印數學結果的程序時。

也許有一些「使用」包,我可以添加到我的代碼來修復打印的數字零作爲一個字符串?

+0

我不知道我明白了,下面的語句'my $ x = 0;打印「\ $ x是$ x \ n」;'在我的機器上打印0。 '$ x'如何得到它的價值?如果它是一些條件的結果,它通常不會返回「0」,它會返回'「」'。例如'my $ x =(2 + 2)== 3;' –

+0

您是否試過這段代碼?它打印零。你使用的是perl的一些古代版本嗎? – AlfredoVR

+16

Perl是大小寫敏感的。 '$ x'和'$ X'是兩個完全不同的變量。 –

回答

4

你確定你有這種情況嗎?在上面你定義$X,但打印$x。 Perl區分大小寫。

$ perl -e 'print "X = $undefined\n"' 
X = 
+0

這是perl 4 verses perl 5中的一個問題嗎? – user4875388

+0

@ user4875388根據[*數據類型和對象*部分(http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/Web/People/rgs/pl-data.html)的[這個Perl 4手冊](http://www-cgi.cs.cmu.edu/cgi-bin/perl-man)我認爲它也是區分大小寫的。 – famousgarkin

+4

@ user4875388不,這不是perl 4 vs perl 5的區別。但是perl 5提供'嚴格使用';你應該總是使用它,當你使用一個未聲明的變量時會給出一個錯誤,這會提醒你錯誤的變量名 – ysth

相關問題