in reply to Perl contract problems

Well, if you're at the point of "my contract doesn't explicitly say", the relationship is probably, although not certainly, beyond repair.

As to your questions:

Should you provide the source code?
Absolutely. In almost every case -- employee or contractor -- the code belongs to the company, not you.
Should you comment it thoroughly?
Yes, to the best of your ability. You owe your client, jerk or not, nothing less.
Should you comment every single line?
Point out that it'll cost time and money to do that, and if they still want it, yes, do that too. However, try to talk to your client in a non-adversarial way, and see if they'd be OK with a block of comments before every logical section.

There's not enough to tell why your relationship has gone so sour, but I can venture some guesses.

In any case, it sounds like you should chalk this one up to experience. Try to leave a good relationship: contracting is a small world. You'll probably encounter these people again, so try not to piss them off on your way out.