Net-Dev-MIBLoadOrder
view release on metacpan or search on metacpan
MIBLoadOrder.pm view on Meta::CPAN
);
# update the tracking that we are resorting
unless ($_TRACK_FLAG) {
foreach $_d (keys %DEFINITIONS)
{_track_it("$_d","re-sort, $_def requires $_imp to be loaded");}
}
return(undef);
}
# all imports have higher weights
else {
printf("loaded, %s\n", $DEFINITIONS{$_imp}{weight})
if $DEBUG;
}
}
}
}
}
_myprintf("DEFINITIONs sorted, %s loops needed\n", $ORDER_LOOPS);
1;
}
#
#.............................................................................
#
# function to find the warnings
#
# loop thru all definitions, if no files exist for def, issue warning
#
# Arguments
# none, operate on global hash
#
# Return
# none, populate globah hash
# @WARNINGS = ([DEFINITION, cuase], [], []
#
sub _find_warnings {
my $_no_file = 'No file found for DEFINITION';
my $_multi_files = 'DEFINITION found in multiple files';
my $_def;
my $_keep;
my @_dump;
my $_f;
foreach $_def (sort keys %DEFINITIONS) {
if ( !defined($DEFINITIONS{$_def}{file}) ) {
push(@WARNINGS, ["$_def", "$_no_file"]);
_track_it("$_def", "issue warning: $_no_file");
}
}
1;
}
#
#.............................................................................
#
#
sub _myprintf {
return unless $DEBUG;
my $_format = shift;
my ($_pkg, $_line) = (caller)[0,2];
my $_func = (caller(1))[3];
$_pkg =~ s/.+://;
$_func =~ s/.+://;
printf("%s: %s: [%s]: $_format", $_pkg, $_func, $_line, @_);
}
#
#.............................................................................
#
# function to track events per DEFINITION
#
# Argument
# $_[0] = DEFINITION
# $_[1] = event
#
# Return
# none, populate global hash
# %TRACK{definition} = ([index, event], [], [], ...)
#
sub _track_it {
return unless $_TRACK_FLAG;
push( @{$TRACK_HASH{$_[0]}}, [++$_TRACK_INDEX, "$_[1]"] );
1;
}
#
# !!!! End the Module !!!!
#
1;
__END__
#=============================================================================
#
# POD
#
#=============================================================================
=pod
=head1 NAME
Net::Dev::Tools::MIB::MIBLoadOrder - Parse MIB files and determine MIB Load Order.
=head1 VERSION
Net::Dev::Tools::MIB::MIBLoadOrder Version 1.1.0
=head1 SYNOPSIS
use Net::Dev::Tools::MIB::MIBLoadOrder;
($load, $warn, $error) = mib_load(
-StandardMIBs => @StandardMIBs,
-EnterpriseMIBs => @EnterpriseMIBs,
-Extensions => %FileExtensions,
-track => 0|1,
( run in 0.597 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )