Re: [問題] 關於標準輸出
※ 引述《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
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章