Является ли STDERR предпочтительнее использовать $stderr или наоборот?
А как насчет STDOUT vs $stdout?
Ответ 1
Напротив, использование $stderr является предпочтительным.
Причиной этого является то, что $stderr как глобальная переменная может быть переназначена, а STDERR в качестве константы не следует переназначать (она вызывает предупреждение).
Обычно оба указывают на один и тот же стандартный файл ошибок, но в некоторых случаях вам может понадобиться временно перенаправить все ваши выходные данные где-то в другом месте (например, в файл журнала или в строковый буфер), и в этом случае вы можете просто переназначить $stderr, и весь ваш код будет уважать это (если вы были достаточно умны, чтобы использовать $stderr вместо STDERR).