Порядок перенаправлений имеет значение. Перенаправляя 3 на 1 и 1 на 2, эффективно перенаправляет 3 на 2. Попробуйте:
IPC::Run::run ['/usr/bin/myapp', '-o', '/dev/fd/3'], , '1>&2', '3>&1', '>', *STDOUT;
Или может быть
IPC::Run::run ['/usr/bin/myapp', '-o', '/dev/fd/3'], , '1>&2', '3>', *STDOUT;