I don't know whether to blame poor initial design or what, but I just spent three days (actual work time of at least nine or ten whole hours) of my life chasing: A MISPLACED COUNTER VARIABLE and A MISPLACED HASH-FILLING SUB.
I guess I could be chasing sewer rats, though.
My mouth fell open when I moved the two. Everything worked. (I hadn't been writing to the inventory file, because it's such a bitch to fix it when I blanked it out previously, but the tests I left in place to check new values came up clean. I start making the program update, properly, *today*.)
This means that, once these kinks are worked out (I'm sure I did something else boneheaded, and I need to clear out all my debugging prints), all I have to do is work out a secure method for my session IDs, and this puppy is essentially doing its job.
It's nowhere near production...but neither is the webspace, so I'm not worried. I doubt my client even knows what he's got to buy, so I guess I have to go show him my research about web servers.
Feels like...finally getting a big dry ball of food down your throat after swallowing hard many times.
Speaking of food...the SO has decided we're having pizza, and I love pizza to death, so I do it good. Pizza is a wonderful, wonderful thing.
It's shaping up to be a good day.