全局变量由$开头.它们可以在程序的任何位置访问到.在初始化前,全局变量有一个特殊的值 nil.
这里列出了一些以$打头并跟单个字符的特殊变量.比如,$$包含了Ruby解释器的进程id,它是只读的.这里是主要的系统变量以及它们的含义(细节可在Ruby的参考手册中查到):
$! 最近一次的错误信息
$@ 错误产生的位置
$_ gets最近读的字符串
$. 解释器最近读的行数(line number)
$& 最近一次与正则表达式匹配的字符串
$~ 作为子表达式组的最近一次匹配
$n 最近匹配的第n个子表达式(和$~[n]一样)
$= 是否区别大小写的标志
$/ 输入记录分隔符
$/ 输出记录分隔符
$0 Ruby脚本的文件名
$* 命令行参数,ARGV的别名
$$ 解释器进程ID
$? 最近一次执行的子进程退出状态
$< 由参数(若没的话就使用标准输入)构成的虚拟文件,ARGF的别名.
也就是说,gets与ARGF.gets的意义相同。可以使用ARGF.file得到当前读入的文件对象,使用ARGF.filename得到当前读入的文件名。
上面的 $_ 和 $~ 都有作用范围.它们的名字暗示其为全局的,但它们一般都是这样用的,关于它们的命名有历史上的原因.
其他的具体参见 ,
http://rubycn.ce-lab.net/man/stdlib_constant.html
http://rubycn.ce-lab.net/man/stdlib_variable.html