in reply to adding to hash/writing to file errors
# AGTS-CLI(Andrew's GTK Time System-Command Line version) # Copyright (C) 2008 Andrew Harris # # This program is free software: you can redistribute it and/or mod +ify # it under the terms of the GNU General Public License as published + by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, email andrew2325@gmail.com! # Contributors: Kelly Royal <netdaemon862@gmail.com> #!/usr/bin/perl use strict; use warnings; my $time = localtime; sub verify { my $username = shift; my %logins = shift; if (exists $logins{$username}) { login($username, %logins); } else { print "$username does not exist in our database.\n"; } } sub login { my %logins = shift; my $username = shift; print "Enter your password: "; chomp(my $pass = <STDIN>); if ($pass <=> $logins{$username}) { greeting($username); } else { print "Incorrect password!\n"; } } sub greeting { my $username = shift; print "Welcome $username.\n"; print "Current time is $time\n\n\n"; } sub admin { my %logins = shift; print "Administrative Tools\n"; print "1. Add user\n"; print "2. Remove user\n"; print "Enter selection: "; chomp(my $selection = <STDIN>); if ($selection == "1") { print "Enter new user name: "; chomp(my $newname = <STDIN>); print "Enter password for $newname: "; chomp(my $newpass = <STDIN>); $logins{$newname} = $newpass; print "User added.\n"; } } while (1) { print "Welcome, Main Menu\n"; print "1. Log in\n"; print "2. Log out\n"; print "3. Administration\n"; print "Enter selection: "; my $selection = <STDIN>; my %logins = ("kroyal" => "5678", "aharris" => "1234"); if ($selection == "1") { print "Enter your user name to log in: "; chomp(my $username = <STDIN>); verify($username, %logins); open(MYLOGINFILE, ">>login.txt"); print MYLOGINFILE "$username:$time\n"; close(MYLOGINFILE); } elsif ($selection == "2") { print "Enter your user name to log out: "; chomp(my $username = <STDIN>); verify($username); open(MYLOGOUTFILE, ">>login.txt"); print MYLOGOUTFILE "$username:$time\n"; close(MYLOGOUTFILE); } elsif ($selection == "3") { admin(%logins); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: adding to hash/writing to file errors
by chrism01 (Friar) on May 06, 2008 at 05:50 UTC |