They are aliases. If you look, you see that for and foreach have been used differently. This should clarify that.
#!/usr/local/bin/perl5.9.1 print "foreach1...\n"; foreach (Foo->new) {} print "after foreach\n"; + print "for...\n"; for (my $object = Foo->new; 1 < 0; ) {} print "after for\n"; + print "foreach2...\n"; foreach (my $object = Foo->new; 1 < 0; ) {} print "after foreach\n"; + package Foo; sub new { my $self = bless {},shift; print "CREATED $self\n"; $self } sub DESTROY { print "DESTROYED $_[0]\n" } __END__ foreach1... CREATED Foo=HASH(0x81249dc) DESTROYED Foo=HASH(0x81249dc) after foreach for... CREATED Foo=HASH(0x8124ac0) after for foreach2... CREATED Foo=HASH(0x81249dc) after foreach DESTROYED Foo=HASH(0x81249dc) DESTROYED Foo=HASH(0x8124ac0)
Cheers,
Ovid
New address of my CGI Course.
In reply to Re: Re: Re: Lexicals in if() scope gotcha!
by Ovid
in thread Lexicals in if() scope gotcha!
by liz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |