O perlowe mózgi modle się do was o pomoc Mianowicie studiuję Web Development. Jednym z przedmiotów jest perl I tu się pojawia problem. Jestem całkowicie tempy z tego przedmiotu. Walczę ze swoim poprawkowym projektem od kilku dni. Jakoś idę do przodu ale strasznie małymi krokami. Kod, który wypociłem do tej pory kosztował mnie wiele nie przespanych nocy a tu powoli kończy mi się czas Wiec jeżeli możecie pomóżcie. W programie który napisałem nie mogę sprawić aby przycisk "log out" funkcjonował. Nie mam również bladego pojęcia jak napisać kod dla przycisku "add". Wszelkie moje próby kończą się tysiącem błędów wyświetlanym przez przeglądarkę. Proszę o pomoc.

#!"C:\xampp\perl\bin\perl.exe"
use strict;
use warnings;
use CGI::Pretty ':standard';
use CGI::Carp qw(fatalsToBrowser);

my @usernames;
my @passwords;
my $username;
my $password;
my $buttonPressed = param('submit') || 'Start';
my $site = "";
open(DEBUG,">","debug.txt") or die "$!\n";
open(INFILE, "<", "users.txt");
my @temp;
@temp = <INFILE>;
chomp(@temp);
close INFILE;

for(my $i = 0; $i < scalar(@temp); $i+=2)
{
push(@usernames, $temp[$i]);
}
for(my $i = 1; $i < scalar(@temp); $i+=2)
{
push(@passwords, $temp[$i]);
}

&decideAction($buttonPressed);

sub decideAction
{
my $previousButton=shift;
if ($previousButton =~ /^Start$/ || $previousButton =~ /^Log\sOut$/)
{
&printForm('First');
}
if ($previousButton =~ /^Log\sIn$/)
{
&printForm('Second');
}

if ($previousButton =~ /^Log\sOut$/)
{
&printForm('First');
}
}



sub printForm
{
my $action = shift;
my $problem=shift;
my $userIndex = -1;

if($action=~/^First$/)
{
&firstPage($problem);
}
elsif ($action=~/^Second$/)
{
my $username = param('user');
my $password = param('pass');

if(! $username)
{
&firstPage('Please enter the username.');
}
elsif(! $password)
{
&firstPage('Please enter the password.');
}
else
{
$userIndex = &checkUsername(@usernames);

if($userIndex != -1)
{
if(&checkPassword($userIndex, @passwords))
{
secondPage($problem);
}

}
else
{
&firstPage("Invalid Password.");
}
}

}

}

sub checkUsername{
my @temp = @_;
my $username = param('user');

for(my $i = 0; $i < scalar(@temp); $i++)
{
if($temp[$i] =~ /$username/i)
{
return $i;
}
}
return -1;
}

sub checkPassword{
my $userIndex = shift;
my @passwds = @_;
my $pass = param('pass');

if($pass eq $passwds[$userIndex])
{
return 1;
}
else{
return 0;
}
}
sub firstPage
{
my $problem = shift;
print header();
print start_html('Contact form');
print h2('Please Log in');
if($problem)
{
print h3($problem);
}
print start_form('get');
print "Login: ", textfield(-name=> 'user');
print br();
print "Password: ", password_field(-name=> 'pass');
print br();
print &button('Log In');
print end_form();
print end_html();
}

sub secondPage
{
my $problem=shift;

print header();
print start_html('Contact form');
print h2('Please enter your details:');
if($problem)
{
print h3($problem);
}
print "Name:", textfield(-name=> 'name');
print br();
print "Phone number:", textfield(-name=> 'phone');
print br();

print &button('add',100);
print &button('find',101);
print &button('display',102);
print &button('Log Out',103);
print end_form();

}


sub printHeader
{
print header,
start_html($site),
}

sub printFooter
{
print end_html;
}


sub searchUser
{
$username = shift;

for(my $i = 0; $i < scalar(@usernames); $i++)
{
if($usernames[$i] eq $username)
{
return $i;
}
}
return -1;
}
sub searchPassword
{
$username = shift;

for(my $i = 0; $i < scalar(@passwords); $i++)
{
if($passwords[$i] eq $password)
{
return $i;
}
}
return -1;
}
sub button
{
my $button=shift;
return submit(-name=>'submit',-value=>$button);
}