#!perl -w
use strict;
use Data::Dumper;
my @r = ('R0');
my @routers =$r[0];
my @router = ( "R0", "R2", "R3" );
my %fpc = (
R0 => { fpc1 => 5, fpc2 => 4, },
R2 => { fpc1 => 3, fpc2 => 2, },
R3 => { fpc1 => 1, fpc2 => 0, },
);
my %pic = (
R0 => { pic1 => 5, pic2 => 4, },
R2 => { pic1 => 3, pic2 => 2, },
R3 => { pic1 => 1, pic2 => 0, },
);
@router = ( "R0", "R2", "R3" );
for my $rh (@routers) {
my $r = shift(@router);
print "value of r is $r\n";
print "Processing routers in order " . join(",", values %{ $fp
+c{$r} }), "\n";
OUTER: for my $f (values %{ $fpc{$r} }) {
print "Processing pic-elements for $r in order " . join( "
+,", values %{ $pic{$r} }), "\n";
INNER: for my $p (values %{ $pic{$r} }) {
print "request chassis pic offline fpc-slot $f pic-slo
+t $p\n";
next OUTER;
}
}
}
Note that between runs of the program, the order can change for every hash. The best way to work with this is to save the order you want in a separate list:
c:\Users\Corion\Projekte>perl -w tmp.pl
value of r is R0
Processing routers in order 5,4
Processing pic-elements for R0 in order 5,4
request chassis pic offline fpc-slot 5 pic-slot 5
Processing pic-elements for R0 in order 5,4
request chassis pic offline fpc-slot 4 pic-slot 5
c:\Users\Corion\Projekte>perl -w tmp.pl
value of r is R0
Processing routers in order 5,4
Processing pic-elements for R0 in order 4,5
request chassis pic offline fpc-slot 5 pic-slot 4
Processing pic-elements for R0 in order 4,5
request chassis pic offline fpc-slot 4 pic-slot 4
c:\Users\Corion\Projekte>perl -w tmp.pl
value of r is R0
Processing routers in order 5,4
Processing pic-elements for R0 in order 4,5
request chassis pic offline fpc-slot 5 pic-slot 4
Processing pic-elements for R0 in order 4,5
request chassis pic offline fpc-slot 4 pic-slot 4
c:\Users\Corion\Projekte>perl -w tmp.pl
value of r is R0
Processing routers in order 5,4
Processing pic-elements for R0 in order 5,4
request chassis pic offline fpc-slot 5 pic-slot 5
Processing pic-elements for R0 in order 5,4
request chassis pic offline fpc-slot 4 pic-slot 5
In your case, I would save the list of numbers like the following:
my @items = values ${ $fpc{$r} };
for my $f (@values) {
...
}
|