my $list_modules = { 'SOAP::Lite' => '0.60', 'Time::Local' => ''}; for my $module (@$list_modules) { eval "use $module $list_modules->{$module}"; if($@) { my $error = $@; $error =~ s/\n(.*)$//s; print "Not found!!!\n"; print "\t$error\n" if $error =~ /this is only/; if($install) { CPAN::Shell->install($module, $list_modules->{$module}); } } else { print "Ok\n" } }