其他線程:What does assigning 'shift' to a variable mean?分配移位到我讀取變量
我也使用perldoc -f shift:
shift ARRAY shift
位移陣列關閉的第一個值,並返回它,縮短陣列由1並把所有東西都搬下來如果數組中沒有元素,則返回未定義的值。如果省略
ARRAY
,轉移子程序和格式的詞法範圍內@_
陣列和子例程的外部,並且還內由eval STRING
,BEGIN {}
,INIT {}
,CHECK {}
,UNITCHECK {}
和END {}
構建體建立的詞法作用域的@ARGV
陣列。另請參閱
unshift
,push
和pop
。shift
和unshift
對pop
和push
做的數組的左端做了同樣的事情。
我明白子程序之外,該陣列是@ARGV
和內部參數通過@_
我讀過關於如何使用shift
功能無數教程過去了,但它總是關於陣列,以及如何它將刪除數組開頭的第一個元素並將其返回。但我看到有時
$eg = shift;
~do more things here~
看起來好像沒有什麼是決策意識給我,我覺得我不能繼續讀書更多,直到我理解它是如何工作的,因爲它是一個「基本構建塊」的語言。
我不太確定是否需要一個代碼示例,因爲我相信相同的原則適用於所有使用shift的程序。但如果錯了,我可以提供一些代碼示例。
如果你不調用任何東西那麼這個子程序是什麼呢?那麼這個轉換是做什麼的呢? – Hae0
你問「當數組已經是空的時候什麼時候會返回?」,那麼答案是'undef'。'perldoc -f shift'文檔中提到了這個細節你已經引用了! – tobyink