$stdouté uma variável global que representa a saída padrão atual. STDOUTé uma constante que representa a saída padrão e normalmente é o valor padrão de $stdout.
Por STDOUTser uma constante, você não deve redefini-la, no entanto, você pode redefinir $stdoutsem erros / avisos (redefinir STDOUTgerará um aviso). por exemplo, você pode fazer:
$stdout = STDERR
O mesmo vale para $stderreSTDERR
Portanto, para responder à outra parte da sua pergunta, use as variáveis globais para redirecionar a saída, não as constantes. Apenas tome cuidado para alterá-lo mais adiante em seu código, a redefinição de variáveis globais pode afetar outras partes de seu aplicativo.