这里的问题是不理解的
字符串插值
你用的是双引号(
"
)将查询字符串分配给
$q
,但它包含一个arobas(
@
),这是插值的。
q美元
最终包含:
SELECT SUBSTRING(AR_email, LOCATE(', AR_email) + 1) AS domain
FROM carrier
WHERE AR_email IS NOT NULL
AND SUBSTRING(AR_email, LOCATE(', AR_email) + 1) =?
如果你把这个放在下面
use warnings
,您将收到以下消息:
Possible unintended interpolation of @' in string
my $q = q/SELECT SUBSTRING(AR_email, LOCATE('@', AR_email) + 1) AS domain
FROM carrier
WHERE AR_email IS NOT NULL
AND SUBSTRING(AR_email, LOCATE('@', AR_email) + 1) =?/;
故事的寓意: