in reply to Strange Hash Problem

It's hard to diagnose when you don't post a complete example that exhibits the problem.

Are you sure the array contains what you think it contains? One possibility is that 101010USED~0 actually contains a newline at the end of it, and so your if statement fails. Verify the contents of the array and the hash using Data::Dumper (or something similar)

use Data::Dumper; print Dumper \@arr, \%vHASH;

Update: I think I misunderstood the question. The reason this is not working is because at $vHASH{'101010'}{'0'} you have a string value ("something"), and then in your if statement you try to use it as a hash reference. Had you been using strictures (use strict & use warnings), you would have received the following error: Can't use string ("something") as a HASH ref while "strict refs" in use at ./784260.pl line xx.