Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: How to create loop in perl dynamically

by Anonymous Monk
on Sep 26, 2012 at 13:56 UTC ( #995773=note: print w/ replies, xml ) Need Help??

in reply to How to create loop in perl dynamically

Also, from perldoc perlop:

Binary ".." is the range operator, which is really two different operators depending on the context. In list context, it returns a list of values counting (up by ones) from the left value to the right value. If the left value is greater than the right value then it returns the empty list. The range operator is useful for writing "foreach (1..10)" loops and for doing slice operations on arrays. In the current implementation, no temporary array is created when the range operator is used as the expression in "foreach" loops, but older versions of Perl might burn a lot of memory when you write something like this:
for (1 .. 1_000_000) { # code }

Comment on Re: How to create loop in perl dynamically
Download Code
Replies are listed 'Best First'.
Re^2: How to create loop in perl dynamically
by adithi (Initiate) on Sep 26, 2012 at 14:11 UTC
    Will try range operator. Thank u.
      I tried this, $index is input
      Here if $index =2, foreach gets created 2 times, But how do i code inside this and control loop parameters.
      Please suggest

        By default the loop variable is held in $_ but you can assign to a variable if you wish. It is not a good idea to alter loop variables inside the loop, that leads to all sorts of grief.

        $ perl -Mstrict -Mwarnings -E ' > foreach my $outer ( 1 .. 3 ) > { > foreach my $inner ( 7 .. 9 ) > { > say qq{$outer x $inner = @{ [ $outer * $inner ] }}; > } > }' 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 $

        I hope this is helpful.



        foreach my $foo (1 .. $x) ... creates a local variable named $foo which contains the current index for this particular loop.   Never use $_ for this purpose, usually.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2015-11-30 06:37 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (760 votes), past polls