【问题标题】:What do @$ and $$ mean in Perl?在 Perl 中 @$ 和 $$ 是什么意思?
【发布时间】:2011-09-15 20:41:43
【问题描述】:

好的,关于奇怪语法的两个问题。我正在处理一些需要修改的旧 Perl 代码,我遇到了以下行:

@$tmp=split(/,/,$tmpVals);

我不知道如何阅读这个,看起来 RHS 正在拆分变量字符串,所以这很好,但它是我被抛出的左侧。世界上什么是@$,据我所知,它不是默认变量。有人知道它的意义吗?

然后是$$,我读过它通常代表Perl PID。但是,在这种情况下,它就在可验证/赋值语句之前。它在那里有相关的影响吗?

$$tmp=$row[1];

提前致谢。

【问题讨论】:

    标签: perl variables syntax


    【解决方案1】:

    你看到的不是特殊的 perl 变量,而是引用的实例。它们在perlref 中进行了描述。

    这些是符号引用:如果$tmp 包含“myvar”,那么变量@myvar 将被分配给。第二个例子也是如此。

    【讨论】:

    • 看来你是对的。搜索那些奇怪的符号时,Google 往往不会返回结果。感谢您的帮助。
    • @Brian:如果这解决了您的问题,请单击它旁边的复选标记以将答案归功于迈克尔
    • 谢谢,刚刚确认。 perl这个特性应该需要括号,符号分开的时候就清楚了,比如:$($varname)
    • 无法从提供的代码中知道这些是符号引用还是“硬”引用。在任何一种情况下都可以使用相同的语法(除了use strict 下不允许符号引用)
    • @Brian => 您可以使用@{$tmp},这与@$tmp 的含义相同。当变量是一个简单的标量时,Perl 允许你去掉大括号。
    猜你喜欢
    • 2018-03-05
    • 2010-12-28
    • 2023-03-25
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多