Perl print命令使用時(shí)遇到的兩個(gè)問(wèn)題
本文和大家重點(diǎn)討論一下Perl print用法中遇到的兩個(gè)問(wèn)題,使用Perl print的不同的寫(xiě)法時(shí)會(huì)出現(xiàn)一些不同的問(wèn)題,這里和大家分享一下,相信通過(guò)本文的學(xué)習(xí)你對(duì)Perl print的概念一定會(huì)有初步的認(rèn)識(shí)。
使用Perl print命令時(shí)遇到的問(wèn)題
使用Perl print的不同的寫(xiě)法時(shí)會(huì)出現(xiàn)一些不同的問(wèn)題:
1.打印數(shù)組:
可能你會(huì)習(xí)慣這樣寫(xiě):
@array1=(“body”,”head”,”tail”);
print@array1;
那么回輸出:bodyheadtail
如果這樣寫(xiě):print“array1”;
會(huì)輸出:bodyheadtail
中間會(huì)有空格出現(xiàn),Perl會(huì)把””之間的數(shù)組先插入一些符號(hào)后然后變成字符串輸出。
如果你的數(shù)組元素當(dāng)中有以換行符結(jié)尾:
參考下列代碼:
@array2=(“head\n”,”body\n”,”tail\n”);
Print“array2”;
運(yùn)行的結(jié)果當(dāng)中除了第一行,后面的bodytail都會(huì)有一個(gè)空格的縮進(jìn),所以如果你的數(shù)組元素當(dāng)中包含有換行符,那么在你用print“@array”的時(shí)候,你就要注意輸出的問(wèn)題了。
2.帶()的print和不帶()的Perl print
Print(“hello”);
Print“hello”;
以上兩個(gè)語(yǔ)句會(huì)有同樣的輸出,似乎沒(méi)有什么區(qū)別,其實(shí)是有的
第一個(gè)加了()的Perl print會(huì)被看待為一個(gè)函數(shù)。第二個(gè)則被看成是一個(gè)運(yùn)算式
在執(zhí)行數(shù)值運(yùn)算的時(shí)候您會(huì)看到有區(qū)別:
下面的打印您覺(jué)得會(huì)輸出什么?
Print(2+4)*5;
結(jié)果是:6,why???????不應(yīng)該是30么,如果你不相信你可以運(yùn)行以下:
這是不是Perl出了問(wèn)題?絕對(duì)不是,其實(shí)如果你對(duì)print輸出加上
()的話(huà),Perl就會(huì)把它當(dāng)作是一個(gè)函數(shù),然后運(yùn)算這個(gè)函數(shù),得到結(jié)果后
與后面的值運(yùn)算,應(yīng)為Perl print如果打印成功就會(huì)返回1,所以上面運(yùn)算完之后
得出5。
如果你想正確的打印輸出,那么比這樣寫(xiě):
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
【編輯推薦】
- 深入解析Perl內(nèi)部函數(shù)的使用
- 術(shù)語(yǔ)匯編 Perl內(nèi)容簡(jiǎn)介
- Perl語(yǔ)言中的五大變量類(lèi)型
- 揭秘Perl變量中Perl純變量用法
- Perl程序設(shè)計(jì)中的Perl用戶(hù)函數(shù)(子程序)