I've done that! For two reasons, one good, one bad.
Bad Reason
I thought
for my $i (1..10) {
# some stuff with $i
}
was the same as
my $i;
for $i (1..10) {
# some stuff with $i
}
rather than being the same as
{
my $i;
for $i (1..10) {
# some stuff with $i
}
}
because in C++, (IIRC)
for (int i=0, i<5; i++) {
...
}
// i in still in scope here!
.
I didn't do use int as shown here, but my coworkers did and I would find it misleading. Perl doesn't have that problem, but I only learned that recently.
Good Reason
This fails ('Modification of a read-only value attempted')
foreach my $var ('a', 'b') {
...something that may modify $var...
print($var);
}
but this doesn't
foreach ('a', 'b') {
my $var = $_;
...something that may modify $var...
print($var);
}
|