如何在Perl中将电子邮件地址添加到字符串中?(“@”字符)[关闭]

yfwxisqw  于 2023-10-24  发布在  Perl
关注(0)|答案(2)|浏览(121)

**已关闭。**此问题需要debugging details。目前不接受答案。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
上个月关门了。
Improve this question
我在CloudBees在线devops平台上有以下Perl代码:

my $formattedUserEmail = $[UserEmail];
    
$additionalTestParameters .= "ECJOBLink,$jobLink;ECJOBId,$[jobId];EcJobCounter,$jobCounter,PFUser,$formattedUserEmail";

它被部署为以下Perl代码:

my $formattedUserEmail = [email protected]; 
    
$additionalTestParameters .= "ECJOBLink,$jobLink;ECJOBId,1111;EcJobCounter,$jobCounter,PFUser,$formattedUserEmail";

但是当代码运行时,它会导致错误,我相信是因为[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)电子邮件地址,特别是@字符,这是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.

我如何修复我的代码,以便将email var添加到$additionalTestParameters字符串中?

rqqzpn5f

rqqzpn5f1#

$[UserEmail]看起来很可疑。可能是受你的python背景影响。
如果它是一个HASH(像Python的dict),它应该是${'UserEmail'}
$[UserEmail]用于ARRAY成员,UserEmail应该是一个数字键。
始终:

use strict;
use warnings;

在你所有的脚本中,它将有助于编码错误:

Array found where operator expected at reply input line 1, near "adam@site"
Bareword "dave" not allowed while "strict subs" in use at reply input line 1.
syntax error at reply input line 1, near "adam@site"
Global symbol "@site" requires explicit package name (did you forget to declare "my @site"?) at reply input line 1.
BEGIN not safe after errors--compilation aborted at reply input line 7.
vc6uscn9

vc6uscn92#

也许,你正在使用一些未指定的模板语言。为了实现你想要的,你需要让它把你想要提供的文本([[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection))转换成Perl字符串文字(' [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) ')。
如果字符串不包含任何引号或反斜杠,则可以使用

my $formattedUserEmail = '$[UserEmail]';

在这种情况下,这将产生

my $formattedUserEmail = '[email protected]';

请注意,这是不安全的。如果源代码不受信任,它可能会注入恶意代码。如果不了解更多的模板语言,我不能提供一个安全的解决方案。

相关问题