This module implements a bunch of very useful functions. By using them I was able to convert lots of spaghetti code into very readable code. During the adoption I was even able to spot one or two bugs that were lurking latent in my code. I highly recomend Data::Util.
This module makes a collection of functions such as Check functions(is_scalar_ref, is_code_ref, etc.), Validating functions(scalar_ref, code_ref, etc.), and so on. Each function is so useful, and the performance is also satisfactory to at least me. For those suspicious of it, I recommend them the benchmark tests shipped with the module. In case of having no compiler, however, you might not be able to get the performance that good.
At any rate, the module would be your toolbox.