for my $plugin (...) { eval 'package Plugin; do $plugin'; # check for $@ here eval { no strict refs; &{'Plugin::func'}() } if ($@) { ...error.handling... } %Plugin:: = () }