perl中哈希键名称中的特殊字符有困难
Difficulty with special characters in hash key names in perl
我很难让这个简单的脚本在 Perl 中运行
我有两个哈希,它们的键类似于电子邮件地址。
我真的相信我的问题是解释“@”和“。”键中的符号
我已验证散列键正确且测试数据存在
所有键都是小写
当程序运行时,它会创建这样的哈希....
### $UPN here is "joesnuffy@apples.grumpy.com"
$AD_Master_List{$UPN}="$DN,$FN,$LN,$UPN,$Email,$JobTitle,$Dept";
### $UPN2 here is "joesnuffy@apples.grumpy.com"
$HTE_Master_List{$UPN2}="$EN,$RFN,$MI,$RLN,$RPT,$RDPT,$UPN,$EMAIL";}
##### The failing Code snippet is below
foreach $A (keys(%HTE_Master_List))
{
unless (exists ($AD_Master_List{$A}))
{print "$A is not present in Active Directory\n";}
}
并且匹配检查将不起作用....
如果有人能提供任何帮助,我们将不胜感激。
提前致谢
里克·克鲁姆利奇
抱歉..我只提供了一个片段..
我使用严格 warnings.and 预定义了所有变量。
我本来打算上传整个代码块,但它有 250 行,我认为这太过分了。
我的数据检查显示正确 'literal version of the $UPN' 但匹配失败。
如前所述,我确定问题出在字符串中插入 @ 和句点。
我非常感谢所有看过我的代码片段的人。
您显示的代码有效。看到了吧运行here.
您的代码中还有一些其他错误。
注:
如果您用双引号定义 $UPN
,您的代码将失败,因为它会尝试插入一个数组。
#wrong: tries to interpolate nonexistent array @apples
my $UPN = "joesnuffy@apples.grumpy.com";
#right
my $UPN = 'joesnuffy@apples.grumpy.com';
但是,如果您使用 warnings
和 strict
,则会发现此问题。很明显你没有使用strict,因为上面的代码失败了(由于没有声明$A
)。
我很难让这个简单的脚本在 Perl 中运行 我有两个哈希,它们的键类似于电子邮件地址。 我真的相信我的问题是解释“@”和“。”键中的符号
我已验证散列键正确且测试数据存在 所有键都是小写
当程序运行时,它会创建这样的哈希....
### $UPN here is "joesnuffy@apples.grumpy.com"
$AD_Master_List{$UPN}="$DN,$FN,$LN,$UPN,$Email,$JobTitle,$Dept";
### $UPN2 here is "joesnuffy@apples.grumpy.com"
$HTE_Master_List{$UPN2}="$EN,$RFN,$MI,$RLN,$RPT,$RDPT,$UPN,$EMAIL";}
##### The failing Code snippet is below
foreach $A (keys(%HTE_Master_List))
{
unless (exists ($AD_Master_List{$A}))
{print "$A is not present in Active Directory\n";}
}
并且匹配检查将不起作用.... 如果有人能提供任何帮助,我们将不胜感激。
提前致谢
里克·克鲁姆利奇
抱歉..我只提供了一个片段..
我使用严格 warnings.and 预定义了所有变量。
我本来打算上传整个代码块,但它有 250 行,我认为这太过分了。
我的数据检查显示正确 'literal version of the $UPN' 但匹配失败。
如前所述,我确定问题出在字符串中插入 @ 和句点。
我非常感谢所有看过我的代码片段的人。
您显示的代码有效。看到了吧运行here.
您的代码中还有一些其他错误。
注:
如果您用双引号定义 $UPN
,您的代码将失败,因为它会尝试插入一个数组。
#wrong: tries to interpolate nonexistent array @apples
my $UPN = "joesnuffy@apples.grumpy.com";
#right
my $UPN = 'joesnuffy@apples.grumpy.com';
但是,如果您使用 warnings
和 strict
,则会发现此问题。很明显你没有使用strict,因为上面的代码失败了(由于没有声明$A
)。