Since my scripts get put on a lot of systems and people have varying degrees of ability and explaining takes time I include this in the head of each of my scripts.
BEGIN {
my @installmodules = (
"DBI",
"XML::Simple",
"Tk",
"Data::Dumper",
"Data::Printer"
);
my @removemodules = (
"Socket6",
"IO::Socket::INET6"
);
foreach my $module (@installmodules) {
eval "use $module";
if ($@) {
$module =~ s/::/-/g;
print "Package $module is not installed\n";
if ($module eq "Net-LDAP") {
$module = "perl-ldap";
}
my $result = system("ppm install $module");
if ($result != 0) {
die "Could not install all libraries/modules required.
+ Failed to install [$module].\n";
}
}
}
foreach my $module (@removemodules) {
eval "use $module";
unless ($@) {
$module =~ s/::/-/g;
print "Problem package $module is installed\n";
my $result = system("ppm remove --force $module");
if ($result != 0) {
die "Could not remove all libraries/modules required.
+Failed to remove [$module].\n";
}
}
}
}