Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: NEXT statement in for loop

by Corion (Patriarch)
on Jun 05, 2016 at 17:30 UTC ( [id://1164938]=note: print w/replies, xml ) Need Help??


in reply to Re^2: NEXT statement in for loop
in thread NEXT statement in for loop

I'm not clear whether your question has been answered yet. To further clarify your code, I've reindented it and added some more diagnostics that show the order that values will take for a given hash:

#!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) { ... }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1164938]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-03-29 15:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found