in reply to {} vs {()}

No, since both of these are empty hash refs. You can certainly distinguish between $foo->{bar} = undef and $foo->{bar} = {} though.