我可以从以下内容中看到perldoc -f eval
:
eval EXPR
eval BLOCK
eval In the first form, the return value of EXPR is parsed and
executed as if it were a little Perl program.
我见过 EXPR 用单引号或双引号括起来,例如,
use strict;
use warnings;
for my $operator ( qw?+ - *? )
{
my $sum = eval "3 $operator 2";
print "$sum\n";
}
我对引号有一个问题:"3 $operator 2"
在EXPR
这种情况下,this的返回值EXPR
是"3 + 2"
第一次迭代,根据perldoc,"3 + 2"
被解析并执行,但它是一个双引号字符串文字,Perl如何得到结果最终5
?我的意思是,当EXPR
用单引号或双引号括起来时,引号是分隔符的一部分EXPR
还是只是分隔符?如果将其更改为单引号,程序会崩溃,因此引号的含义似乎与单引号或双引号字符串文字中的含义相同。
谢谢