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.

Reply via email to