One of the quickest ways to debug Perl code is to start placing
print statements near where you are having trouble.
For looking at the contents of array and hash variables, use Data::Dumper;. For example, to inspect values passed into a sub:
print Dumper(\@_);
Taking another pass through your code, I see a couple of unusual things:
my %logins = shift;
Inside a sub, shift will remove a single element from the @_ array, not an entire hash as you may expect. See for yourself with:
print Dumper(\%logins);
You may want to consider passing hashes by reference (see perlreftut).
Another oddity is:
if ( $pass <=> $logins{$username} ) {
What are you trying to accomplish there?
Another recommendation is to take advantage of your modular approach by testing your individual subs.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.