【发布时间】:2021-03-01 17:27:37
【问题描述】:
我正在从 csv 文件中读取用户 ID 并尝试检查该用户 ID 是否存在于我的哈希中,但是我发现我通过 if(exists($myUserIDs{"$userID"})) 进行的检查永远不会返回 true,尽管我使用了我的多个密钥进行了测试哈希。
open $file, "<", "test.csv";
while(<$file>)
{
chomp;
@fields = split /,/, $_;
$userID = @fields[1];
if(exists($myUserIDs{"$userID"}))
{
#do something
}
}
【问题讨论】:
-
也许您想使用
$fields[1]? -
$myUserIDs{"$userID"}是写$myUserIDs{$userID}的一种过于复杂的方式。引号字符是不必要的。 -
在
if之后尝试添加:else { print "Not found [$userID]\n"; }- 在用户 ID 周围加上方括号很重要,因为它可以使某些问题变得明显,例如$userID是否有前导或尾随空格。
标签: perl