$stdoutjest zmienną globalną, która reprezentuje bieżące standardowe wyjście. STDOUTjest stałą reprezentującą standardowe wyjście i zwykle jest wartością domyślną $stdout.
Ponieważ STDOUTjest to stała, nie należy jej ponownie definiować, jednak można ją zdefiniować ponownie $stdoutbez błędów / ostrzeżeń (ponowne zdefiniowanie STDOUTspowoduje ostrzeżenie). na przykład możesz:
$stdout = STDERR
To samo dotyczy $stderriSTDERR
Tak więc, aby odpowiedzieć na drugą część pytania, użyj zmiennych globalnych do przekierowania danych wyjściowych, a nie stałych. Po prostu uważaj, aby zmienić to z powrotem w kodzie, ponowne zdefiniowanie zmiennych globalnych może wpłynąć na inne części aplikacji.