参考手册:标准库——内部常数

TRUE ((<obsolete>))

  真值的代表。与true相同。php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby中把所有非伪值(即非false又非nil的值)都看作真。(请参考obsolete。)
FALSE ((<obsolete>))

  伪值。与false相同。(请参考obsolete。)
NIL ((<obsolete>))

  与nil相同。(请参考obsolete。)
STDIN

  标准输入。$stdin的默认值。
STDOUT

  标准输出。$stdout的默认值。
STDERR

  标准错误输出。$stderr的默认值。
ENV

  表示环境变量的(伪)哈希表(详情请参考ENV)。若改变该哈希表的值时,将作为子进程环境而被继承下来。
ARGF

  由参数(若没的话就使用标准输入)构成的虚拟文件(详情请参考ARGF)。也就是说,gets与ARGF.gets的意义相同。可以使用ARGF.file得到当前读入的文件对象,使用ARGF.filename得到当前读入的文件名。
ARGV

  传给Ruby脚本的参数。内部变量$*的别名。而面向Ruby自身的参数已经被摘除。
DATA

  访问脚本中__END__(脚本终点)以后部分的File对象。

  注意:

   * 使用DATA.rewind后的读取位置不再是__END__后面,而是脚本文件的开头。
   * 若读入脚本时使用的是标准输入的话,则为标准输入。
   * 如果读入脚本时并没有使用文件或标准输入,或者脚本并非以__END__结束时,则该定义将不再适用。
   * 即使用require或load加载文件时,也并不是指该文件(_FILE_),而是指运行文件($0)。

TOPLEVEL_BINDING

  顶层中的Binding对象。
RUBY_VERSION

  显示Ruby版本的字符串。Ruby版本信息的形式为major.minor.teeny。(当前)各个号码的位数不会超过2位,因此

  if RUBY_VERSION >= '1.6.7'
  # 在1.6.7以后的版本中有效的操作
  else
  # 在此之前的版本中有效地操作
  end

  按照版本信息的不同来进行分支处理。

  在1.8以前的版本中,minor是奇数时则为开发版,minor是偶数时则为稳定版。在1.9.0以后的版本中,teeny为0的版本是开发版。
RUBY_RELEASE_DATE

  显示Ruby发布日期的字符串。
RUBY_PLATFORM

  显示平台信息的字符串。
VERSION ((<obsolete>))
RELEASE_DATE ((<obsolete>))
PLATFORM ((<obsolete>))

  这些都是前面那些常数RUBY_XXX的旧名称。请参考obsolete。

  ruby 1.9 特性: 这些常数已经停用。
SCRIPT_LINES__

  默认情况下,该常数不会被定义。

  若将该常数定义为哈希表后,在编译源代码时,源文件名将成为哈希表元素的索引,而源文件的内容会被按行切分后转化为数组,该数组将成为哈希表元素的内容。在调试(debug.rb)等场合会用到该常数。

  SCRIPT_LINES__ = {}
  require 'English'
  p SCRIPT_LINES__

  # 注: 输出内容被处理过。
  # => {"/usr/local/lib/ruby/1.6/English.rb"=>
    ["alias $ERROR_INFO     $!\n",
    "alias $ERROR_POSITION    $@\n",
    "alias $LOADED_FEATURES   $\"\n",
       :
       :
    "alias $POSTMATCH     $'\n",
    "alias $LAST_PAREN_MATCH   $+\n"]}

  另外,只有在$SAFE等级为0时才有效。同时,也不能由eval进行编译。