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

xyv*_*vab 8 perl

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

print ${\string}

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

pil*_*row 11

裸字"字符串"被理解为一个你根本没引用的字符串. use strict会禁止这个,并use warnings会抱怨它.

然后,您将对字符串(有效地my $ref = \"string";)进行引用,并对其进行解除引用(实际上${$ref}).

从某种意义上讲,这是"正常的",生活中的生活strict有时既滑溜又锋利.

  • 还要尝试`sub string {return'foo'}; print $ {\ string}`,它为裸字提供不同的分辨率 (5认同)

Сух*_*й27 7

它是对字符串被解除引用的引用 ${}

perl -MO=Deparse -e "print ${\string}"
print ${\'string';};
Run Code Online (Sandbox Code Playgroud)