2013-08-18 75 views
0

我對perl剛剛開始學習,當我嘗試爲標量賦值並打印它時,我正面臨問題。我做從windows命令行執行Perl代碼

  perl -e "$number=30;"  
     perl -e "print $number;" 

輸出犯規顯示任何東西,但是當我做

  perl -e "$number=30; print $number;" 

輸出顯示30,爲什麼?

回答

5

此:

perl -e "$number=30;" 

運行的Perl程序​​,它將變量$number設置爲30,然後不執行任何操作。

此:

perl -e "print $number;" 

運行Perl程序print $number;,打印的未初始化的變量$number的值。

關鍵是,由於這些是兩個完全獨立的Perl程序,因此第一個程序中的變量$number與第二個程序中的變量$number之間沒有連接。這兩個程序之間沒有關係,它們之間也沒有通信,所以它們不能也不能共享任何變量。

+0

多一個問題raukh我可以做這樣的事情$ number = 30; $ result =「這是」+「$ number」;打印「$結果」; – haris

+0

這很容易:$ result =「這是$ number」 –

+1

@haris:是的,但是連接運算符是'.'而不是'+':'$ result ='這是'。 $ number'。 (或者只是'$ result =「這是$ number」'。) – ruakh

5

當你執行:

perl -e "$number=30;"  
perl -e "print $number;" 

這是兩個獨立的過程,所以他們不共享信息。第二個命令不能使用變量$號。

另一種:

perl -e "$number=30; print $number;" 

的作品,因爲它運行在相同的執行,以及$號是可見的下一個打印一句

+0

謝謝你......即使我有同樣的懷疑只是想確認.. – haris