コードが機能しないと言っていますか?確かに汚いですが、うまくいくように見えます。
修正:
use strict; # Always use this!
use warnings; # Always use this!
my $user = ...;
my $password = ...;
my %passwords;
open(my $fh, '<', 'password.txt') or die $!;
while (<$fh>) {
chomp;
my ($user, $password) = split /:/;
$passwords{$user} = $password;
}
close($fh);
if (exists($passwords{$user}) && $password eq $passwords{$user}) {
print p("Hello"." ".$user);
} else {
print p("Login failed.");
}
しかし、なぜハッシュ?
use strict;
use warnings;
my $user = ...;
my $password = ...;
my $logged_in;
open(my $fh, '<', 'password.txt') or die $!;
while (<$fh>) {
chomp;
my ($file_user, $file_password) = split /:/;
if ($user eq $file_user) {
if ($password eq $file_password) {
$logged_in = 1;
}
last;
}
}
close($fh);
if ($logged_in) {
print p("Hello"." ".$user);
} else {
print p("Login failed.");
}
このタイプの質問は、特定の問題に関する特定の質問を対象としているため、実際にはSOのトピックではありません。これはおそらくhttp://codereview.stackexchange.com –
私が心配している主なことは、ハッシュ検索の作業を取得する問題です。その後、私は自分で他のすべてを修正することができます、私はちょうどそれが実際に実行されるようにコードの残りの部分をダムする必要がありました。 – Jared
私が初めて言ったように、そのタイプの質問はhttp://codereview.stackexchange.comに属しています –