in reply to Re^2: Multiple conditions matching when pulling OID value with Net::SNMP
in thread Multiple conditions matching when pulling OID value with Net::SNMP
Simplest way:
my $status; my @values = values (%$result); foreach my $key (@values) { print "key:$key\n"; $status = $key; }
However, now that I take another look at it, I also notice that you're only ending up with a single value in $status, and that's whatever came last in your @values or %Sresult hashref. Is this intentional? If so, you could just re-write it like so:
my $status = ( keys %$results )[ -1 ];
This is untested, but ought to work. Basicaly it saves you from creating a superfluous array @values, treats keys %$result as a list, and [ -1 ] takes the last element of that list.
And completely unrelated, but you may want to start indenting your code properly, as it can get hard to see scoping issues merely by eyeballing it. For instance, the following would've made this much more obvious to everyone else in the thread:
my @values = values (%$result); foreach my $key (@values) { print "key:$key\n"; $status = $key; }
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
|
|---|