我只是看着在懷疑這個順序:perl子例程參數列表 - 「通過別名」?
my $line;
$rc = getline($line); # read next line and store in $line
我都明白沿着Perl的論據按值傳遞的,所以每當我需要一個大的結構來傳遞,或傳遞一個變量更新,我已通過裁判。
但是,在perldoc中讀取細小的文字,我知道@_是由別名組成的,它與參數列表中提到的變量相關。讀取下一位數據後,getline()返回$ _ [0] = $ data;,其中存儲$數據直接到$行。
我喜歡這樣 - 就像在C++中通過引用傳遞一樣。但是,我還沒有找到一種方法來爲$ _ [0]分配更有意義的名稱。有沒有?
yup,Perl總是通過引用 – newacct
好吧 - 不要與Perl引用混淆,它更像C指針,因爲它們必須被明確解除引用。 – Chap
不會 $ arg = shift; $ arg = $ data; 做到了嗎?或者將'轉移'作爲參數的副本呢? 編輯:我測試了一個通過標量和'shift'ed參數的地址,結果表示shift確實複製,因此如上所述分配給$ arg不會像預期的那樣影響$ line。 :( – sundar