我正在进行用户登录,但是在用户创建部分遇到了麻烦。我的问题是我试图对照文本文件检查输入的用户名,以查看该用户名是否已存在。我似乎无法将输入的用户名与引入的数组进行比较。我尝试了两种不同的方法来实现此目的。一种使用数组,另一种使用我不太了解的在线阅读内容。任何帮助或解释将不胜感激。
这是我尝试使用数组比较
http://codepad.org/G7xmsf3z
这是我的第二次尝试
http://codepad.org/SbeqmdbG
最佳答案
在您的第一次尝试中,尝试将if放入循环中:
foreach my $pair(@incomingarray) {
(my $name,my $value) = split (/:/, $pair);
if ($name eq $username) {
print p("Username is already taken, try again");
close(YYY);
print end_html();
}
else {
open(YYY, ">>password.txt");
print YYY $username.":".$hashpass."\n";
print p("Your account has been created sucessfully");
close(YYY);
print end_html();
}
}
在您的第二次尝试中,我认为您应该尝试更改此行:
if (%users eq $username) {
与此:
if (defined $users{$username}) {
关于perl - 问题对照平面文件检查用户名输入以创建用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9242451/