diff --git a/check_memory/check_memory b/check_memory/check_memory index bf46711..4f272d1 100644 --- a/check_memory/check_memory +++ b/check_memory/check_memory @@ -23,14 +23,36 @@ use strict; use warnings; use vars qw($PROGNAME $VERSION $FREECMD $UNIT); -use Nagios::Plugin; + +sub load_module { + my @names = @_; + my $module; + for my $name (@names) { + my $file = $name; + # requires need either a bare word or a file name + $file =~ s{::}{/}gsxm; + $file .= '.pm'; + eval { + require $file; + $name->import(); + $module = $name; + }; + last if $module; + } + return $module; +} + +my $plugin_module; +BEGIN { + $plugin_module = load_module( 'Monitoring::Plugin', 'Nagios::Plugin' ); +} $PROGNAME = "check_memory"; $VERSION = '1.0.1'; $FREECMD = '/usr/bin/free'; $UNIT = 'M'; -my $np = Nagios::Plugin->new( +my $np = $plugin_module->new( usage => "Usage: %s [ -w ] [ -c ]\n" . ' [ -u ]', version => $VERSION,