Re: [問題] 關於標準輸出

看板Perl作者 (會走路的冰塊)時間18年前 (2007/05/15 16:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《tgbsa (每天進步一點點)》之銘言: : 小弟我自學還是個剛寫perl的新手,之前都在寫C的程式 : 可是對於perl真摸不透他,有些東西感覺上有點不能接受冏 : 想請問各位為什麼 : print (int(rand 42)+1) , "\n" ; : 這樣沒有換行效果 : print "\n" , (int(rand 42)+1) ; : 這樣卻有了... : 另外如果把上面那行寫成 : $num = (int(rand 42)+1); : print $num ,"\n" ; : 卻又變成有換行效果了,真是奇怪!! : $num 跟 (int(rand 42)+1) 的東西不是相等嗎? : 先謝謝各位了!! 我想應該是串列語境的關係 (int(rand 42)+1) <-- 前後加上括號,變成串列 (list) 了! 如果改成 print int(rand 42)+1,"\n"; 輸出後就會斷行 那為什麼串列這麼做就會出錯呢?剛剛試了一下 print (1,2,3,4,5),"\n"; 輸出結果是 12345 然後沒斷行 網路上找了一下資料,應該是這個原因 print (1,2,3),"\n"; 相當於 (print (1,2,3)),"\n"; 就相當於 1,"\n"; 因為 print 完之後無誤,函式回傳 1 $return = print (1,2,3); //return = 1 $return = print (1,2,3) * 5; //return = 5 $return = print 5 * (1,2,3); //return = 1 $return = 5 * print (1,2,3); //return = 5 -- 我想你會衰成這樣都是我害的 ---- Tizzy Mac 緊張的麥金塔?這是誰(._.?) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.98.6

05/16 13:29, , 1F
謝謝
05/16 13:29, 1F
文章代碼(AID): #16IMahQ1 (Perl)
討論串 (同標題文章)
文章代碼(AID): #16IMahQ1 (Perl)