in reply to Re: how to identify a null hash value
in thread how to identify a null hash value

I've tried various things for CHECKSOMETHING, see the four IF statements I listed at the end of my post.
  • Comment on Re^2: how to identify a null hash value

Replies are listed 'Best First'.
Re^3: how to identify a null hash value
by stevieb (Canon) on Jun 04, 2015 at 20:55 UTC

    ahhh, I see. Again though, it does appear from what you've posted that $value DOES contain data, and if that's the case, all of your tests will be true.

    One way to see if I'm correct in thinking you've got a defined value (hashref) is this:

    print "it's a hashref\n" if ref($hh{'QUESTION_TEXT'}) eq 'HASH';

    -stevieb

      I see you are saying it's defined, but I want to check if it contains any data - has a non null value. The dumper output shows an empty hash as its value, but I want to print something different if it has an empty hash, vs a non empty hash. That's my else clause - but I can't get that else clause to execute. And note that it is an empty hash, but it doesn't print a null string when I print it - instead, it prints "HASH(xxxx)" string, which I don't want

        Ok, so you want to see if the hash in that value is empty... I think I get you now ;) Try this:

        if (%{$hh{'QUESTION_TEXT'}}){ # do stuff... } else { # it's empty, so do different stuff... }

        It dereferences the inner hashref, and checks if it isn't null (empty).

        -stevieb