Вы могли бы:
Откройте STDERR и STDOUT, как в текстовых файлах памяти (вы должны сначала закрыть его):
close STDOUT;
open STDOUT, '>', \$variable or die "Can't open STDOUT: $!";
close STDERR;
open STDERR, '>', \$variable or die "Can't open STDERR: $!";
Подробнее об этом можно узнать на open - perldoc.perl.org
Или поймать предупреждение и умереть заявления:
$SIG{__WARN__} = sub { PrintThingsToMyLogWin(@_); 1 };
$SIG{__DIE__} = sub { PrintThingsToMyLogWin(@_); 1 };
Но это не позволит вам ловить стандартные операторы печати.
В любом случае, удачи в поиске решения, и не стесняйтесь сообщить нам, если вы найдете его самостоятельно.