Author: larry
Date: Fri Nov 7 09:02:15 2008
New Revision: 14600
Modified:
doc/trunk/design/syn/S02.pod
Log:
add $?VM and $?DISTRO, recast versions as object info
Modified: doc/trunk/design/syn/S02.pod
==============================================================================
--- doc/trunk/design/syn/S02.pod (original)
+++ doc/trunk/design/syn/S02.pod Fri Nov 7 09:02:15 2008
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 10 Aug 2004
- Last Modified: 4 Nov 2008
+ Last Modified: 7 Nov 2008
Number: 2
- Version: 140
+ Version: 141
This document summarizes Apocalypse 2, which covers small-scale
lexical items and typological issues. (These Synopses also contain
@@ -1967,22 +1967,10 @@
Here are some possibilities:
- $?OS Which operating system am I compiled for?
- $?OSVER Which operating system version am I compiled for?
- $?PERLVER Which Perl version am I compiled for?
$?FILE Which file am I in?
$?LINE Which line am I at?
- $?PACKAGE Which package am I in?
- @?PACKAGE Which nested packages am I in?
- $?MODULE Which module am I in?
- @?MODULE Which nested modules am I in?
- $?CLASS Which class am I in? (as variable)
- @?CLASS Which nested classes am I in?
- $?ROLE Which role am I in? (as variable)
- @?ROLE Which nested roles am I in?
- $?GRAMMAR Which grammar am I in?
- @?GRAMMAR Which nested grammars am I in?
$?PARSER Which Perl grammar was used to parse this statement?
+ $?LANG Which Perl parser should embedded closures parse with?
&?ROUTINE Which routine am I in?
@?ROUTINE Which nested routines am I in?
&?BLOCK Which block am I in?
@@ -1993,11 +1981,32 @@
All the nested C<@?> variables are ordered from the innermost to the
outermost, so C<@?BLOCK[0]> is always the same as C<&?BLOCK>.
+The following return objects that contain all pertinent info; in
+particular they may be smartmatched against strings for the name and
+against version literals for the version:
+
+ $?OS Which operating system am I compiled for?
+ $?DISTRO Which OS distribution am I compiling under
+ $?VM Which virtual machine am I compiling under
+ $?XVM Which virtual machine am I cross-compiling for
+ $?PERL Which Perl am I compiled for?
+ $?PACKAGE Which package am I in?
+ @?PACKAGE Which nested packages am I in?
+ $?MODULE Which module am I in?
+ @?MODULE Which nested modules am I in?
+ $?CLASS Which class am I in? (as variable)
+ @?CLASS Which nested classes am I in?
+ $?ROLE Which role am I in? (as variable)
+ @?ROLE Which nested roles am I in?
+ $?GRAMMAR Which grammar am I in?
+ @?GRAMMAR Which nested grammars am I in?
+
Note that some of these things have parallels in the C<*> space at run time:
$*OS Which OS I'm running under
- $*OSVER Which OS version I'm running under
- $*PERLVER Which Perl version I'm running under
+ $*DISTRO Which OS distribution I'm running under
+ $*VM Which VM I'm running under
+ $*PERL Which Perl I'm running under
You should not assume that these will have the same value as their
compile-time cousins.