[monitoring-plugin-perl] Refactor positional arg parsing for Getopt::arg()
Tom Ryder <[email protected]> Fri, 22 Dec 2017 11:50:07 +0100 (CET)
| Newsgroups | gmane.network.nagios.cvs |
|---|---|
| Message-ID | <[email protected]> |
Module: monitoring-plugin-perl Branch: master Commit: c3f2a7cd7313868166ba205e9eff2b8be6a36ea4 Author: Tom Ryder <[email protected]> Date: Sat Dec 16 13:25:34 2017 +1300 URL: https://www.monitoring-plugins.org/repositories/monitoring-plugin-perl/commit/?id=c3f2a7c Refactor positional arg parsing for Getopt::arg() Define the expected order of parameters by key in an array, and then apply hash slices to validate and assign the arguments including their required flags in one swoop, again hinging on the parameter definitions established in c1046ba. --- lib/Monitoring/Plugin/Getopt.pm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/Monitoring/Plugin/Getopt.pm b/lib/Monitoring/Plugin/Getopt.pm index feee002..048b0ef 100644 --- a/lib/Monitoring/Plugin/Getopt.pm +++ b/lib/Monitoring/Plugin/Getopt.pm @@ -398,14 +398,8 @@ sub arg # Positional args else { - my @args = validate_pos(@_, 1, 1, 0, 0, 0); - %args = ( - spec => $args[0], - help => $args[1], - default => $args[2], - required => $args[3], - label => $args[4], - ); + my @order = qw(spec help default required label); + @args{@order} = validate_pos(@_, @params{@order}); } # Add to private args arrayref