以星号 * 开头的 Perl 标识符代表什么? [英] What do Perl identifiers starting with an asterisk * represent?

查看:101
本文介绍了以星号 * 开头的 Perl 标识符代表什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个子程序,它的标识符定义如下

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆