#!/usr/bin/perl print "foreach...\n"; foreach (my $object = Foo->new) {} print "after foreach\n"; print "while...\n"; while (my $object = Foo->new && 0) {} print "after while\n"; print "for...\n"; for (my $object = Foo->new; 1 < 0; ) {} print "after for\n"; package Foo; sub new { my $self = bless {},shift; print "CREATED $self\n"; $self } sub DESTROY { print "DESTROYED $_[0]\n" } __END__ foreach... CREATED Foo=HASH(0x813361c) after foreach while... CREATED Foo=HASH(0x8133700) DESTROYED Foo=HASH(0x8133700) after while for... CREATED Foo=HASH(0x813cfcc) after for DESTROYED Foo=HASH(0x813cfcc) DESTROYED Foo=HASH(0x813361c)