我正在进行用户登录,但是在用户创建部分遇到了麻烦。我的问题是我试图对照文本文件检查输入的用户名,以查看该用户名是否已存在。我似乎无法将输入的用户名与引入的数组进行比较。我尝试了两种不同的方法来实现此目的。一种使用数组,另一种使用我不太了解的在线阅读内容。任何帮助或解释将不胜感激。

这是我尝试使用数组比较
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/

10-14 16:08
查看更多