Hi,

do you know a short and easy way to iterate a block X times?

I know, one could use while, for, ... but there are some reasons,
why they don't fit.

All these versions are long. I really like Perl, because you can
do thing with shorter code. In all these loops you must define a
variable which gets increased or decreased in each iteration.

Here is the next problem. To be honest I don't know much about
how to make a program efficient, but for me it seems to be
inefficient to have a calculation, a comparison each time and two
variables (or one variable, which changes every time and a
constant) only for doing something X times. Especially if I know
how often I want to run the block before I start it and if I
don't need to know the value of $_ in

for 1..5 {
        $value = $_;
}

So where is this needed?

I know Perl isn't the best language when I want to do big
calculations, but the Lucas?Lehmer primality test[1] would be one
example.

I'm not sure how this should look like. Ruby allows something
like this. So maybe one should have look there. Here a few
suggestions:


$X.times {
        $s = $s * $s;
}

$X * {
        $s = $s * $s
}

iterate ( $X )
{
        $s = $s * $s;
}


I guess something always has to be increased/decreased if it
comes down to C/Assembly, but even if it doesn't make it faster
it would make to code smaller and easier to understand.

[1] Wikipedia also has some pseudocode:
http://en.wikipedia.org/wiki/Lucas%E2%80%93Lehmer_primality_test

Reply via email to