use strict;
use warnings;
use Net::SNMP qw(:snmp);
my $address = $ARGV[0];
my $user = $ARGV[1];
my $pass = $ARGV[2];
my $protocol = lc $ARGV[3];
my $snmp_community = $ARGV[4];
my $snmp_version = $ARGV[5];
my $snmp_port = $ARGV[6];
my $snmp_timeout = $ARGV[7];
my $max_oids = $ARGV[8];
my $snmp_username = $ARGV[9];
my $snmp_password = $ARGV[10];
my $snmp_auth_protocol = $ARGV[11];
my $snmp_priv_passphrase = $ARGV[12];
my $snmp_priv_protocol = $ARGV[13];
my $snmp_context = $ARGV[14];
my $action = lc $ARGV[15];
my $type = lc $ARGV[16];
my ( $session, $error ) = Net::SNMP->session(
hostname => $address,
port => $snmp_port,
version => "snmpv" . $snmp_version,
timeout => $snmp_timeout,
debug => $snmp_debug_mask,
username => $snmp_username,
authpassword => $snmp_password,
authprotocol => $snmp_auth_protocol,
privpassword => $snmp_priv_passphrase,
privprotocol => $snmp_priv_protocol,
);
####
my ( $session, $error ) = Net::SNMP->session(
...
if ($snmp_priv_passphrase ne "") { privpassword => $snmp_priv_passphrase, }
...
}
####
if ($snmp_priv_passphrase ne "") { $snmp_priv_passphrase = undef; }
my ( $session, $error ) = Net::SNMP->session(
...
}