這是Devel :: REPL會話(我的Perl版本是v5.10.1)。你能解釋一下結果嗎?圓括號如何在Perl 5中工作?
0:main$ my $x = 1,2,4
[
1,
2,
4
]
0:main$ my $y = (1,2,4)
Useless use of a constant in void context at (eval 296) line 8.
4
我剛剛開始學習Perl,並且仍然遇到了煩惱上下文的麻煩。無論如何,我認爲我明白爲什麼第二項任務會做它的工作。這是因爲我們有了一個標量上下文,這就是爲什麼沒有構建任何列表,我們只是最終重複執行逗號操作符,而操作符只是返回它的右操作數。對?
但是,第一項任務有什麼問題?它不應該等同於第二個嗎?在某些時候,我認爲圓括號不會提供任何魔法語義來構建列表 - 它們只是將元素分組在一起,並且如果元素最終在列表上下文中使用,它們只會被轉換爲列表。顯然,這不是事實。
好吧,好的。圓括號的特殊作用是什麼?
我想我現在明白了。 – mob
非常感謝,就是這樣!隨後'說$ x'確實打印'1'。 –