This looks less like a Perl problem than a clarification of what you're trying to do (although I would heed advice re un-commenting useful code and perhaps deleting some confusing code). You're printing a .csv file to STDOUT of the tuples you're selecting but you say you want to report a) missing users and names and b) see if that missing info is located in a .csv file.
in reply to Need to compare 2 hash values
I would re-write it by loading in the .csv data first with two hashes: one for users and the other for names; both use ipaddress as the key. Then when you loop through the results of your SELECT statement, if you have missing values on either field you can simply do a lookup in the appropriate hash on the ipaddress. To report, use a subroutine that spits out html and call it when you find missing data. If it were up to me I would have just one report with additional fields indicating the (perhaps) non-missing .csv data.
Narrowing the problem down though is the first thing, then asking more specific questions as they arise.