On Fri, Jan 14, 2005 at 02:46:58PM -0500, Austin Hastings wrote: > >rules, I can easily have it either way. > > > > {for (my $n=0; $n<10; ++$n) {...}} # Local to loop > > for (my $n=0; $n<10; ++$n) {...} # Persistent > > > >--Dks > > > But there's no clean way to make some of them temporary and some > persistent. > > This seems like a legitimate place for "saying what you intend", viz: > > for (my $n is longlasting = 0, $m = 1; ...) {...}
I see your point, but: - at least in the kinds of programming I do, I rarely use more than one loop variable (with the exception of nested loops, and even there the second var is declared in the second loop line) - even when I do, only rarely do I want some of them to persist and some not - if I do, I'm willing to suffer the minor ugliness of putting the to-be-persistent ones outside the scope, rather than have to use a property every time I want ANYTHING persistent. - I would much prefer this: my ($total, $last_seen, $had_errors) = (0)x3; for ($my $i=0; $i < @elements; $i++) {...} To this: for (my $i=0, $total=0 is longlasting, $last_seen=0 is longlasting, $had_errors=0 is longlasting; $i < @elements; $i++) { ... } FWIW.... --Dks