General Perl Best Practice stuff: uncuddle "else", localise $@

use $exception in place of $e
use parent in place of "base"