package SMNPDevice; sub new { my $class = shift; my $ip = shift; my $sysName = shift; my $sysDesc = shift; my $sysObjectID = shift; my @members = GetStackMembers($ip); return SNMPObject::CiscoStack::new($ip, $sysName, $sysDesc, $sysObjectID) if scalar @members > 1; return SNMPDevice::CiscoWLC::new($ip, $sysName, $sysDesc, $sysObjectID) if $sysDesc =~ /Cisco WLC/; #etc }