为什么Perl变量需要以不同的字符(sigils)开头?
标量变量以 $
哈希开头 %
数组开始于 @
他们为什么喜欢这个?
我刚刚发现perl忽略了sigil和它的变量名之间的空间,并想知道是否有人可以告诉我这是否是预期的行为.我以前从未遇到过这种情况,它可能导致字符串内部出现奇怪的行为.
例如,在以下代码中,$ bar将以值'foo'结束:
my $foo = 'foo';
my $bar = "$ foo";
Run Code Online (Sandbox Code Playgroud)
这也适用于变量声明:
my $
bar = "foo\n";
print $bar;
Run Code Online (Sandbox Code Playgroud)
第二种情况对我来说并不重要,但在字符串插值的情况下,这可能会导致非常混乱的行为.有人知道这是什么一回事吗?