my %oids = (
"ifName" => {
1 => "Gi1/0/1",
2 => "Gi1/0/0",
3 => "Gi1/1/1",
4 => "Gi2/0/0",
5 => "Gi2/0/1",
},
);
####
- or:
my %oids = (
"ifName" => {
1 => "1",
2 => "2",
3 => "3",
4 => "4",
5 => "5",
},
);
- or:
my %oids = (
"ifName" => {
1 => "2/1",
2 => "4/5",
3 => "15/1",
4 => "1/1",
5 => "1/2",
},
);
- or:
my %oids = (
"ifName" => {
1 => "Fa0/1",
2 => "Fa0/2",
3 => "Fa3/1",
4 => "Gi0/1",
5 => "Gi0/0",
},
);
####
my (@a, @b);
my @port_ifIndices = sort {
if ($oids{ifName}{$a} =~ /\//) {
@a = split(/\//, $oids{ifName}{$a});
@b = split(/\//, $oids{ifName}{$b});
}
else {
@a = $oids{ifName}{$a};
@b = $oids{ifName}{$b};
}
if ($a[0] =~ /[A-Za-z]/) {
$a[0] ne $b[0] ? $a[0] cmp $b[0] : ($a[1] <=> $b[1] ? $a[1] <=> $b[1] : $a[2] <=> $b[2]);
} else {
$a[0] != $b[0] ? $a[0] <=> $b[0] : ($a[1] <=> $b[1] ? $a[1] <=> $b[1] : $a[2] <=> $b[2]);
}
} keys(%{ $oids{ifName} });
foreach my $ifIndex (@port_ifIndices) {
print ("$ifIndex: $oids{ifName}{$ifIndex}\n");
}
####
2: Gi1/0/0
1: Gi1/0/1
3: Gi1/1/1
4: Gi2/0/0
5: Gi2/0/1