One thing I notice right off is that when the mob dies, the first check you do is to check if the global is not defined, then you are checking under that what the global is set to. If it isn't defined, it won't be set to anything :P
Try changing this:
Code:
if (!defined($qglobals{emoush})){
to this:
Code:
if (defined($qglobals{emoush})){