Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

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
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
      foreach(1..$index)
      {
      }
      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.

        Cheers,

        JohnGG

        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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2014-11-27 02:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (178 votes), past polls