Perl =>列表上下文中的运算符

时间:2014-02-26 14:08:53

标签: arrays perl operators

根据Perl docs,列表上下文中的=>运算符等效于具有额外引用功能的逗号。我理解的很多,但文档也说明了

  

=>运算符有助于记录散列中的键和值,和列表中的其他配对元素之间的对应关系。

他们举了这个例子:

login( $username => $password );

现在,对我而言似乎相当于

login($username, $password)

除了两者之间的隐含引用之外还有其他区别吗?这两个参数是否以某种方式传递给login()

更重要的是,列表中的“配对元素”的例子是什么(不是哈希)?如果我将列表定义为

@f=("foo" => "bar")

我可以以某种方式使用foo来访问bar吗?这是否以某种方式使数组关联?


我已阅读How does double arrow (=>) operator work in Perl?,但是询问它是如何在一般情况下使用的,而不是在列表上下文中。

2 个答案:

答案 0 :(得分:3)

  

除了两者之间的隐含引用之外还有其他区别吗?传递给login()的两个参数是以某种方式链接的吗?

不,不。

您引用的材料只是谈论记录配对元素(c.f。self-documenting code)。您必须编写将它们视为数组或列表中的对的代码。

答案 1 :(得分:2)

通过像

这样的东西可以做得更好
login(username => $username, password => $password)

相同
login('username', $username, 'password', $password)

但显示配对更好。