Re: Readline using foreach and while
- From: "Peter J. Holzer" <hjp-usenet2@xxxxxx>
- Date: Thu, 27 Mar 2008 21:26:50 +0100
On 2008-03-27 04:45, szr <szrRE@xxxxxxxxxxxxxxx> wrote:
nolo contendere wrote:
Provably untrue. See Ben's example. I'll restate the concept below.
my @ary = qw/a b c/;
# for (@ary, ()) {
# for ( (), @ary ) {
for ( @ary ) {
push @ary, 'd' if /c/;
print;
}
...
only the uncommented 'for' line prints a 'd' at the end. so what you
say MAY be true if LIST is ONLY an array.
Isn't that because the two commented one are two lists being combined
into a new list, and it's *that* new list that's being iterated over, so
even if you add to @ary, it doesn't change the "new list", which is just
that, a new list created at the start of the loop before iterating
begins - therefore the values of the new list are set and @ary has
nothing to do with it after the create of the "new list."
Yes. But the same should be true for
for (@ary) {
...
}
for() expects a list, the list is constructed from the elements of @ary.
If you modify @ary after the list is constructed, the list shouldn't be
affected, but it is. I think Ben Morrow is right here: This smells like
an optimization: If there is only a single array, it can be used
directly instead of creating a list from it.
hp
.
- Follow-Ups:
- Re: Readline using foreach and while
- From: szr
- Re: Readline using foreach and while
- References:
- Readline using foreach and while
- From: Saurabh Jain
- Re: Readline using foreach and while
- From: Ben Bullock
- Re: Readline using foreach and while
- From: Ben Morrow
- Re: Readline using foreach and while
- From: Frank Seitz
- Re: Readline using foreach and while
- From: Ben Morrow
- Re: Readline using foreach and while
- From: szr
- Re: Readline using foreach and while
- From: nolo contendere
- Re: Readline using foreach and while
- From: szr
- Re: Readline using foreach and while
- From: nolo contendere
- Re: Readline using foreach and while
- From: szr
- Readline using foreach and while
- Prev by Date: Re: Pattern matching
- Next by Date: Re: Readline using foreach and while
- Previous by thread: Re: Readline using foreach and while
- Next by thread: Re: Readline using foreach and while
- Index(es):
Relevant Pages
|