【发布时间】:2016-10-25 06:43:30
【问题描述】:
所以我有两个变量
$x = q(foo);
$y = q(bar);
我的目标是在第三个变量中使用它们,它们之间有一个下划线,即foo_bar。有很多方法可以做到这一点,但我想使用qq
所以
$z = qq($x_$y);
这会产生以下错误
Global symbol "$x_" requires explicit package name at test.pl line 45.
Execution of C:\test.pl aborted due to compilation errors.
所以我必须使用带有变量 x 的大括号来使其工作
$z = qq(${x}_$y);
为什么下划线不适用于qq?为什么在这种情况下我需要大括号?
【问题讨论】:
-
qq($x_$y)与$x_ . $y完全相同。你需要卷曲,因为那不是你想要的。 -
回复:
Why does underscore not work with qq?不仅仅是qq(),"$x_$y";也会遇到同样的问题,原因在答案中进行了解释。