General Perl Best Practice stuff: uncuddle "else", localise $@ when using "eval" block.
use parent  and localised $@

- Added a more descriptive variable to capture $@ after the eval block.