#!/usr/bin/perl
use strict;
use warnings;
# "Friendly" version using eval BLOCK
foreach my $mod (qw(CGI Test::Simple Foo::Bomb Test::More)) {
(my $fn="$mod.pm")=~s|::|/|g; # Foo::Bar::Baz => Foo/Bar/Baz.pm
if (eval { require $fn; 1; }) {
print "Module $mod loaded ok\n";
} else {
print "Could not load $mod. Error Message: $@\n";
}
}
####
Module CGI loaded ok
Module Test::Simple loaded ok
Could not load Foo::Bomb. Error Message: Can't locate Foo/Bomb.pm in @INC (@INC contains: c:/strawberry/perl/lib c:/strawberry/perl/site/lib .) at foo.pl line 6.
Module Test::More loaded ok
####
#!/usr/bin/perl
use strict;
use warnings;
# "Quick-and-dirty" version using eval BLOCK
foreach my $mod (qw(CGI Test::Simple Foo::Bomb Test::More)) {
if (eval "require $mod; 1;") {
print "Module $mod loaded ok\n";
} else {
print "Could not load $mod. Error Message: $@\n";
}
}
####
Module CGI loaded ok
Module Test::Simple loaded ok
Could not load Foo::Bomb. Error Message: Can't locate Foo/Bomb.pm in @INC (@INC contains: c:/strawberry/perl/lib c:/strawberry/perl/site/lib .) at (eval 5) line 1.
Module Test::More loaded ok