$stdoutè una variabile globale che rappresenta l'output standard corrente. STDOUTè una costante che rappresenta lo standard output ed è in genere il valore predefinito di $stdout.
Con STDOUTessere una costante, non si deve ri-definire, tuttavia, è possibile ridefinire $stdoutsenza errori / avvertenze (ridefinizione STDOUTalzerà un avvertimento). ad esempio, puoi fare:
$stdout = STDERR
Lo stesso vale per $stderreSTDERR
Quindi, per rispondere all'altra parte della tua domanda, usa le variabili globali per reindirizzare l'output, non le costanti. Basta fare attenzione a cambiarlo di nuovo più avanti nel codice, la ridefinizione delle variabili globali può influire su altre parti dell'applicazione.