我下面有一些 Perl 代码:
my $formattedUserEmail = $[UserEmail];
$additionalTestParameters .= "ECJOBLink,$jobLink;ECJOBId,$[jobId];EcJobCounter,$jobCounter,PFUser,$formattedUserEmail";
当 Perl 代码运行时,我看到下面每个 var 的内容:
my $formattedUserEmail = [email protected];
$additionalTestParameters .= "ECJOBLink,$jobLink;ECJOBId,1111;EcJobCounter,$jobCounter,PFUser,$formattedUserEmail";
但是当代码运行时,它会导致错误,我相信是因为[email protected]
电子邮件地址,特别是@
字符,这是 Perl 中的特殊符号。
Array found where operator expected at ... line 32, at end of line
syntax error at .... line 32, near "adam@site"
Global symbol "@site" requires explicit package name at C.... line 32.
Execution of ..... aborted due to compilation errors.
如何修复我的代码以便将电子邮件变量添加到字符串中$additionalTestParameters
?
$[UserEmail]
看起来很可疑。如果它是一个
HASH
(就像Python的字典),它应该是${'UserEmail'}
.$[UserEmail]
用于ARRAY
会员并且UserEmail
应该是数字键。总是:
在您的所有脚本中,它将有助于解决编码错误:
您正在使用某种未指定的模板语言。为了实现您想要的目的,您需要让它将您想要提供的文本 (
[email protected]
) 转换为 Perl 字符串文字 ('[email protected]'
)。如果字符串不包含任何引号或反斜杠,您可以使用
在这种情况下,这将产生
请注意,这是不安全的。如果来源不受信任,则可能会注入恶意代码。如果不了解更多关于模板语言的信息,我无法提供安全的解决方案。