Says saucepan:
> Were you thinking of creating a file boundary with do or require?
Yes, that's the only other one I could think of.
Dan, what are we missing?
| [reply] |
Well, I warned you that it was an intentionally ambiguous
question. My answers are from what the source considers
different ways to start a scope, because I was playing
around with that sort of stuff recently.
So, so far we've got three correct answers.
`eval STRING', a block, and a loop. Remember that `do' and `require'
are really special cases of `eval STRING'. And yes, the source
does distinguish between a loop and a block.
There are four left which have yet to be named. I'll give
you one more. This one is the last "easy" one, in that it's
not completely surprising: `sub' starts a scope, and the source
considers that different from a block.
So there are three more out there. These ones, especially
two of them, are completely obscure ways to start scopes.
P.S. I too once knew the answer to the baseball question,
but it's been too long. Base hit, walk, hit by pitch, dropped
third strike, catcher's interference, fielder's choice, error.
That's all I can think of, which is seven. My memory wants to
say that a catcher's balk counts, but I think a catcher's balk
has the same effect as a pitcher's balk. Hmm...
-dlc
| [reply] |
Do you count the fact that a loop starts two scopes, not one?
for (my $x = 0; $x < 10; ++$x) {
# stuff
my $y = $x;
# more stuff
}
Note that $x and $y are in different scopes. $y is local
to the body of the loop. $x is global to the loop.
Also for some definition of scope, <package> starts a new
scope.
And if we want the source differing, an if starts a scope
and is different from either a block or a loop - try to
do redo and it ignores the enclosing if for the
enclosing block or loop.
I have also had occasion to run Perl code in a different
process by opening a pipe to it, writing my code on the
pipe, and then sending __END__. Does that count?
What about running code using reval from Safe? Does
that count as different from eval? | [reply] [d/l] |
Says dchetlin:
> ...catcher's balk...
There's no such thing as a catcher's balk; you made it up. A balk is when
the pitcher deceives the base runners by interrupting
his pitching motion so that he can throw to one of the
bases instead. The penalty is that the base runners are
each awarded an extra base. But the batter never advances to
first on a balk.
The seven you listed is the same as what I came up with.
a referred me to a web page that purported to list ten,
but I decided that three of them were no good.
(The best of the lot was that the batted ball might hit a runner,
but I believe that's scored as a hit regardless.)
I guess this has nothing to do with Perl. Maybe I'll get
on the worst nodes list!
| [reply] |