use strict; use warnings; use Getopt::Long; my %opts; GetOptions( 'address=s' => sub { $opts{$_[0]} = $_[1]; } 'user=s' => sub { $opts{$_[0]} = $_[1]; } 'pass=s' => sub { $opts{$_[0]} = $_[1]; } 'protocol=s' => sub { $opts{$_[0]} = $_[1]; } 'snmp_community=s' => sub { $opts{$_[0]} = $_[1]; } 'snmp_port=s' => sub { $opts{$_[0]} = $_[1]; } 'snmp_timeout=s' => sub { $opts{$_[0]} = $_[1]; } ... }