in reply to Re: Re: Odd hash problem.
in thread Odd hash problem.

If you need to preserve the value of an existing variable only for the duration of a small block, perhaps you want local instead of my. Using 'my' on a variable already declared in the current scope will also generate a warning. Simply localizing its value with local is what you want to do here. This will also set its value to empty within the block you're using it, so a local %hash; is sufficient to get an empty %hash until you leave that block of code, at which point the original value is restored.

And the CGI::Carp bit is only useful if your application generates its own warnings/errors (including fatal error messages). Add the -w option to Perl (or with 5.6, 'use warnings;') so that Perl will take a look at your code and warn you when things don't look quite right, as it would have in this case.