#!/usr/bin/perl
use warnings;
use strict;
use POSIX qw(_exit);
foreach my $mod (qw(CPAN No::Such IO::Socket Not::Installed))
{
printf "%20s: %-3s\n",$mod,is_module_installed($mod)?"Yes":"No";
}
####
sub is_module_installed
{
my($mod)=@_;
return (system("perl -M$mod -e 1 2>/dev/null") == 0);
}
####
sub is_module_installed
{
my($mod)=@_;
defined(my $pid = fork)
or die "Fork error: $!\n";
if ($pid)
{
# Parent
waitpid $pid,0;
return $? == 0;
}
else
{
# Child
close(STDERR);
eval "use $mod;";
_exit($@?1:0);
}
}