in reply to MD5 and passwords

if (!$Site && uc($User) eq "super")

How could uc($User) ever be equal to "super"?

if (!$Site && uc($User) eq "000")

I didn't know that a zero digit had an upper and lower case.

$Session->{'usrName'} = @{@{$MLSUser->{rows}}[0]}[0]." ".@{@{$ +MLSUser->{rows}}[0]}[2];

Why are you using a list in scalar context?

The proper way to write that is:

$Session->{'usrName'} = $MLSUser->{rows}[0][0]." ".$MLSUser->{ +rows}[0][2];

In fact everywhere that you write @{@{$MLSUser->{rows}}[0]}[n] should be changed to $MLSUser->{rows}[0][n].