my $browser = LWP::UserAgent->new(); my $source_data = $browser->get( $config{source_file} ); die( "Couldn't GET $config{source_file}\n" ) unless defined $source_data; print "Got source data\n"; my $results_table; my @all_results = split /\n/, $source_data->{_content}; for ( @all_results ) { next if $_ =~ m/^\#/; my ( $site_name, $line_speed, $mgmt_ip, $switch_port, $ro_community, $group, $site_code ) = split /\|/; #### $results_table->{$group}->{$site_name} = { line_speed => $line_speed, mgmt_ip => $mgmt_ip, switch_port => $switch_port, ro_community => $ro_community, site_code => $site_code, oss_device => $oss_device, snmp_status => '', sysobjid => '', }; #### my ($session, $error) = Net::SNMP->session( -community => $results_table->{$group}->{$site_name}->{ro_community}, -hostname => $results_table->{$group}->{$site_name}->{mgmt_ip}, -nonblocking => 0x1, # Create non-blocking objects ); if (!defined($session)) { printf("ERROR: %s.\n", $error); exit 1; } #### $session->get_request( -varbindlist => [ $oids{sysobjid} ], -callback => [ \&store_sysobjid, \$group, \$site_name ] ); #### } snmp_dispatcher(); #### sub store_sysobjid { my ($session, $group, $site_name ) = @_; if (!defined($session->var_bind_list)) { $results_table->{$$group}}->{$$site_name} = { sysobjid => "unknown", snmp_status => "NOT OK", }; printf("%-15s ERROR: %s\n", $session->hostname, $session->error); } else { $results_table->{$$group}->{$$site_name} = { sysobjid => ${$session->var_bind_list}{$oids{sysobjid}}, snmp_status => "OK"}; } }