in reply to Re^4: "goto" memory leak
in thread "goto" memory leak
"goto creates spurious scopes".No, goto doesn't create scopes, spurious or otherwise. There aren't any hidden or misbehaving scopes here. It's a bit like the following code:
In that code, there are only two scopes: the implied whole-file scope, and the while loop. The array will repeatedly have 1000 elements pushed on it, then be emptied.while (1) { $i = 0; my @a; again: push @a, 1; goto again if $i++ < 1000; }
The goto just moves execution around to various places within the one scope.
Perhaps the confusion is seeing 'my' as just a compiler declaration, like 'int' is in C; it's not; its something that has a runtime effect as well as a compile-time effect. If you repeatedly execute the 'my' without ever leaving the scope which that 'my' is embedded in, then that runtime effect will accumulate.
Dave.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: "goto" memory leak
by jethro (Monsignor) on Mar 31, 2016 at 13:03 UTC | |
by Anonymous Monk on Mar 31, 2016 at 14:36 UTC |