Perl print命令使用時遇到的兩個問題
本文和大家重點討論一下Perl print用法中遇到的兩個問題,使用Perl print的不同的寫法時會出現一些不同的問題,這里和大家分享一下,相信通過本文的學習你對Perl print的概念一定會有初步的認識。
使用Perl print命令時遇到的問題
使用Perl print的不同的寫法時會出現一些不同的問題:
1.打印數組:
可能你會習慣這樣寫:
@array1=(“body”,”head”,”tail”);
print@array1;
那么回輸出:bodyheadtail
如果這樣寫:print“array1”;
會輸出:bodyheadtail
中間會有空格出現,Perl會把””之間的數組先插入一些符號后然后變成字符串輸出。
如果你的數組元素當中有以換行符結尾:
參考下列代碼:
@array2=(“head\n”,”body\n”,”tail\n”);
Print“array2”;
運行的結果當中除了第一行,后面的bodytail都會有一個空格的縮進,所以如果你的數組元素當中包含有換行符,那么在你用print“@array”的時候,你就要注意輸出的問題了。
2.帶()的print和不帶()的Perl print
Print(“hello”);
Print“hello”;
以上兩個語句會有同樣的輸出,似乎沒有什么區別,其實是有的
第一個加了()的Perl print會被看待為一個函數。第二個則被看成是一個運算式
在執行數值運算的時候您會看到有區別:
下面的打印您覺得會輸出什么?
Print(2+4)*5;
結果是:6,why???????不應該是30么,如果你不相信你可以運行以下:
這是不是Perl出了問題?絕對不是,其實如果你對print輸出加上
()的話,Perl就會把它當作是一個函數,然后運算這個函數,得到結果后
與后面的值運算,應為Perl print如果打印成功就會返回1,所以上面運算完之后
得出5。
如果你想正確的打印輸出,那么比這樣寫:
Print5*(2+4);
或者:
Print((2+4)*5);
D:\>Perl-e"print(2+4)*5"
6
D:\>Perl-e"print5*(2+4)"
30
D:\>Perl-e"print((2+4)*5)"
30
【編輯推薦】