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...
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!