以星号 * 开头的 Perl 标识符代表什么? [英] What do Perl identifiers starting with an asterisk * represent?
问题描述
我有这个子程序,它的标识符定义如下
I have this sub-routine which has identifiers defined like
*VALID_NAME_REG_EX = \"[ a-zA-Z0-9_#.:@=-]+";
*MACRO_VALID_NAME = \"MACRO_VALID_NAME";
我进一步查看了文件.它们被引用为 $MACRO_VALID_NAME
.
I looked into the file further. They are referenced as $MACRO_VALID_NAME
.
我猜它是用字符串右侧的值替换了该值,但我不确定这一点并需要确认.
I guess it's substituting the value with right side of string, but I am not sure of this and want a confirmation.
推荐答案
*VALID_NAME_REG_EX = \"[ a-zA-Z0-9_#.:@=-]+";
这样做的效果是将 $VALID_NAME_REG_EX
指定为 Perl 字符串文字的标识符 "[ a-zA-Z0-9_#.:@=-]+"代码>
The effect this has is to assign $VALID_NAME_REG_EX
as an identifier for the Perl string literal "[ a-zA-Z0-9_#.:@=-]+"
这和说的不一样
$VALID_NAME_REG_EX = "[ a-zA-Z0-9_#.:@=-]+"
将字符串复制到分配给$VALID_NAME_REG_EX
的空间,以便以后可以更改
which copies the string into the space assigned to $VALID_NAME_REG_EX
so it may later be altered
Perl 文字必须是只读的才能有意义,因此赋值的结果是使 $VALID_NAME_REG_EX
成为一个 只读 变量,也称为一个常数.如果您尝试分配给它,您将收到类似
Perl literals have to be read-only to make any sense, so the result of the assignment is to make $VALID_NAME_REG_EX
a read-only variable, otherwise known as a constant. If you try assigning to it you will get a message something like
尝试修改只读值
这篇关于以星号 * 开头的 Perl 标识符代表什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!