On Mon, Jan 07, 2008 at 11:42:06AM -0500, Trey Harris wrote:
> So $?OS isn't "the type of OS", it's *the OS*, and you can manipulate the 
> OS through it.

Note that $?OS is the OS that is-or-was running at compile time,
whereas $*OS is the OS running right now (at run time).  Those don't
have to be the same, especially for modules distributed in some kind
of universal bytecodeish format.  That is, $?OS is a compile-time
constant, while $*OS is a variable.  In fact, if someone invents
a way for a process to freeze and restore the execution context in
a different place, $*OS could change more than once.

All $? variables should be considered compile-time constants, in fact.
That's why "self" is no longer spelled $?SELF, for instance, because
it varies.


Reply via email to