奇怪的$行为:$ {\ string}

时间:2013-08-12 21:14:46

标签: perl

在我进行实验的过程中,我发现了这一点

print ${\string}

会将string打印到屏幕上 这是正常的吗?这有名字吗?

2 个答案:

答案 0 :(得分:11)

裸字“字符串”被理解为一个你根本没引用的字符串。 use strict会禁止此操作,而use warnings会抱怨它。

然后您正在引用该字符串(实际上是my $ref = \"string";),并将其解除引用(实际上是${$ref})。

在没有strict的生活有时既滑溜又锋利的意义上,这是“正常的”。

答案 1 :(得分:7)

这是对使用${}

取消引用字符串的引用
perl -MO=Deparse -e "print ${\string}"
print ${\'string';};