in reply to Re: Pop quiz: find the bug
in thread Pop quiz: find the bug

Perhaps I'm being dense, but I think [c]hromatic's solution is overkill.

If I were writing (or re-writing) the entire code snippet from scratch, I'd agree. The point of replacing the switch statement was twofold. First, I don't like switch statements. I find them generally unperlish. Second, I wanted to replace just that code, in a local refactoring. Since it was a bugfix, I didn't want to change a bunch of other variables.

That left me with the question, "How do I update the values of these variables based on identifying keys, while maintaining the variable names?" It was shorter than reassigning the variables from the hash values.

Replies are listed 'Best First'.
Re: Re: Re: Pop quiz: find the bug
by jjohn (Beadle) on Jul 05, 2002 at 05:42 UTC

    It was shorter than reassigning the variables from the hash values.

    Ah! You have lifted the coins from my eyes. I didn't quite understand why you were using scalar refs. I believe your code assumes that the hash would be initialized like:

    %totals = ( 'tcash' => \$tcash, ... );

    This is reasonable if the individual scalars must exist. It would be preferable to create hash that contains the appropriate values obtained directly from the canonical source, which I imagine is probably an SQL table. So perhaps I was over-thinking the solution by trying to imagine where those several scalars came from at all.

    Still, it isn't an unpleasant way to while away the hours. ;-)