package Foo; use strict; use warnings; my @modules = qw( Data::Dumper ); sub import { my $package = caller(); foreach my $mod (@modules) { my $code = "package $package; use $mod;"; eval $code; die $@ if $@; } } 1;