in reply to Parsing SNMP VLAN-numbers

You can either split on dot or colon and index to the element you want, or else you can do regex matching and capture the field you want. In this case I think regex, since there is a unique pair of delimiters around the number you want,

my @array = qw/ .1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.1:INTEGER:1 .1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.2:INTEGER:1 .1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.10:INTEGER:1 .1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.1002:INTEGER:1 .1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.1003:INTEGER:1 /; my @vlans = map {m/\.(\d+):/ ? $1 : undef} @array;
The trinary op makes sure that the elements of @vlans correspond one-to-one with those of @array, even when no match is found.

After Compline,
Zaxo