in reply to Re: Barstool Trivia
in thread Barstool Trivia
Recall that this is a fairly ambiguous question, and that my answer really just reveals what the source considers to be different scopes.
That answer is found in cop.h, line 360 as of recent perls.
#define CXt_NULL 0 #define CXt_SUB 1 #define CXt_EVAL 2 #define CXt_LOOP 3 #define CXt_SUBST 4 #define CXt_BLOCK 5 #define CXt_FORMAT 6
OK, the easy ones first
That leaves three: CXt_NULL, CXt_SUBST, and CXt_FORMAT. You can probably guess what CXt_SUBST and CXt_FORMAT do, even though the fact that they start new scopes may be surprising.
[~] $ perl -le'$_="foo";s/foo/my $x="bar"/e;print;print ">>>$x<<<"' bar >>><<<
There's s/// creating a new scope. Here's format:
[~] $ cat tmp/format format = @<<<<<<< my $x = "foo" . write; print ">>>$x<<<"; [~] $ perl -l !$ perl -l tmp/format foo >>><<<
OK, so what does that leave us with? CXt_NULL. CXt_NULL is the block passed to `sort', strangely enough. It's also referred to as a pseudo-block throughout the source.
-dlc
|
|---|