根据Perl docs,列表上下文中的=>
运算符等效于具有额外引用功能的逗号。我理解的很多,但文档也说明了
=>运算符有助于记录散列中的键和值,和列表中的其他配对元素之间的对应关系。
他们举了这个例子:
login( $username => $password );
现在,对我而言似乎相当于
login($username, $password)
除了两者之间的隐含引用之外还有其他区别吗?这两个参数是否以某种方式传递给login()
?
更重要的是,列表中的“配对元素”的例子是什么(不是哈希)?如果我将列表定义为
@f=("foo" => "bar")
我可以以某种方式使用foo
来访问bar
吗?这是否以某种方式使数组关联?
我已阅读How does double arrow (=>) operator work in Perl?,但是询问它是如何在一般情况下使用的,而不是在列表上下文中。
答案 0 :(得分:3)
除了两者之间的隐含引用之外还有其他区别吗?传递给login()的两个参数是以某种方式链接的吗?
不,不。
您引用的材料只是谈论记录配对元素(c.f。self-documenting code)。您必须编写将它们视为数组或列表中的对的代码。
答案 1 :(得分:2)
通过像
这样的东西可以做得更好login(username => $username, password => $password)
与
相同login('username', $username, 'password', $password)
但显示配对更好。