可能重复:
Ruby $ stdout与STDOUT
是STDERR一般优于使用$stderr,反之亦然?
STDOUTvs 那怎么样$stdout?
Nik*_* B. 20
相反,使用$stderr是优选的.
原因是$stderr因为可以重新分配全局变量,STDERR而不应该重新分配常量(它会引发警告).
通常它们都指向相同的标准错误文件,但在某些情况下,您可能希望暂时将所有输出重定向到其他位置(例如,日志文件或字符串缓冲区),在这种情况下,您可以重新分配$stderr所有输出你的代码会尊重(如果你足够聪明,$stderr而不是STDERR首先使用).