if (defined $module) { # Detaint $module =~ m/^(My_Safe_Namespace(?:\:\:\w+)*)$/ or die "Unsafe module name: $module\n"; $module = $1; eval "use $1;"; die if $@; # Call 'run' as a method to avoid eval-string $module->run(); }