你的問題最終是「爲什麼是在第6行標量上下文@backwards」,其中 引發了一個問題,「我怎樣才能確定一個術語的上下文?」。
上下文由下式確定「什麼是圍繞」(即它的「上下文」)的術語。
如何確定術語的上下文?通過查看 正在使用該術語的運算符/函數。
如果你 沒有有用的stackoverflow夥伴來告訴你它的上下文,你可以按照什麼步驟來找出@ backwards的上下文?
在這裏,我們有
print @backwards."\n"
所以有兩個運營商/功能。我們如何知道哪一個將背景 提供給@ backwards?通過諮詢優先。近perlop.pod的頂部,我們有Perl的 優先級表(打印是一個「列表操作符」):
left terms and list operators (leftward)
...
left + - .
...
nonassoc list operators (rightward)
哦,太好了,現在我們需要知道相片是否是向左或向右。通過諮詢 在perlop中的「條款和列表操作符(左側)」部分( 優先級列表之後)我們看到,打印是向右這裏,因爲我們還沒有括號括 它的參數。
所以串聯是更高的優先級,所以級聯提供上下文@backwards。
下一步是檢查文檔(再次perlop中),用於連接:
Binary "." concatenates two strings.
字符串是標量,所以二進制 「」連接兩個標量。
,我們終於擁有它!
@backwards具有標量上下文因爲級聯提供標量上下文 其每個操作數。
嗚。這很簡單,不是嗎:-)
保持列表上下文會'印刷@backwards,「\ n」` – 2011-01-26 09:17:19
感謝您的回答的另一個選擇。 – Prakhar 2011-01-26 12:07:56