http://www.perlmonks.org?node_id=995782


in reply to Re^2: How to create loop in perl dynamically
in thread How to create loop in perl dynamically

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
  • Comment on Re^3: How to create loop in perl dynamically

Replies are listed 'Best First'.
Re^4: How to create loop in perl dynamically
by johngg (Canon) on Sep 26, 2012 at 14:31 UTC

    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

Re^4: How to create loop in perl dynamically
by sundialsvc4 (Abbot) on Sep 26, 2012 at 15:52 UTC
    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.