in reply to Re^3: adding to hash/writing to file errors
in thread adding to hash/writing to file errors

Okay, I got rid of the errors it was returning, now the only problem is it won't add users, and only one of the default users works! I haven't a clue as to why it is doing this. Any suggestions would be appreciated.
  • Comment on Re^4: adding to hash/writing to file errors

Replies are listed 'Best First'.
Re^5: adding to hash/writing to file errors
by toolic (Bishop) on May 05, 2008 at 17:08 UTC
    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.