in reply to Changing the Value Assigned To A Hash Key

Add 'use strict;' to the top of your script. That will catch the spelling error.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

  • Comment on Re: Changing the Value Assigned To A Hash Key

Replies are listed 'Best First'.
Re^2: Changing the Value Assigned To A Hash Key
by gnurob (Initiate) on Feb 08, 2005 at 20:51 UTC

    Hi, thanks for responding.

    The top of the script uses

    use strict; use warnings;
    Are you seeing a spelling error I am not? Just triple checked...
      The value of $app{"first_name"} is not changed to undef in &print_application but @errors is. print statements confirm both are changed inside of the "if (request_method() eq "POST")" block.

      Your statement implies that there is an issue with changing values in the %app hash within the print_application() function. Since you didn't show us the print_application() function nor did you show us the beginning of your script where you (correctly) have 'use strict;', I gave you the most common error which is a mispelling of %app.

      Some other possibilities include:

      1. Mispelling 'first_name'. Hash keys are case-sensitive.
      2. Declaring %app within print_application().
      3. Using this script under mod_perl (or some other persistent environment like FastCGI). (You'd be getting a "%app will not stay shared" error, but you might not be looking at the error log.)

      Given the dearth of information, this is the best I can do. Good luck!

      Being right, does not endow the right to be rude; politeness costs nothing.
      Being unknowing, is not the same as being stupid.
      Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
      Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.