Ruby имеет два способа обращения к стандартному вводу: константа STDIN и глобальная переменная $stdin.
Помимо того, что я могу назначить другой объект IO для $stdin, потому что он не является константой (например, перед форкированием для перенаправления ввода-вывода у моих детей), какая разница между STDIN и $stdin? Когда я должен использовать каждый в своем коде?
Если я переназначаю $stdin, это повлияет на STDIN?
И это также относится к STDOUT/$stdout и STDER/$stderr?