in reply to why need my in a foreach loop?
Using a variable in a loop is not different from using a variable in an assignment: it can either use an existing one, or it can be a fresh one, declared with my.
Or put another way: use strict; forces you to be explicit about your declarations. Having some construct doing implicit declarations, at least in some circumstances, goes against the entire idea of strict.
Update: Perl 6 gets around this by having other declarative syntax forms. Signatures can be used for that, either by being attached to a routine, or in the form of a lambda:
# | declares $x in the scope of the block my $lambda = -> $x { $x * $x } # reused in loop syntax: for <a b cd> -> $x { say $x } # | declares $x in the scope of the block sub square($x) { $x * $x }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: why need my in a foreach loop?
by szabgab (Priest) on Nov 28, 2010 at 18:33 UTC | |
by chromatic (Archbishop) on Nov 29, 2010 at 06:18 UTC | |
by TomDLux (Vicar) on Nov 29, 2010 at 04:27 UTC |