my $module_name = 'Foo'; eval "use $module_name;1;" or die "Couldn't use $module_name: $@"; #### #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $module = 'Foo'; my $module_path = "$module.pm"; $module_path =~ s|::|/|g; require $module_path; print Dumper $module->new;