Perl Security: 6. When using objects, remember... Checking for required/optional/invalid arguments Remember to check for everything indispensable in your constructor. When a user calls your module, you must Receive any mandatory arguments. If you don't, the module should not be created. Process any optional arguments received. If you did not receive them, always provide default values in the constructor (don't scatter 'if exists' all over your code [and remember, 'exists' and 'defined' is NOT the same] ) If the user specified an argument that is not mandatory and is not optional, it is probably mistaken. Refuse to create the object.