in reply to Using IPC::Open3 instead of backtick operator

That program suffers from a race condition that can result in a deadlock. Should the child send a sufficient amount of data to its STDERR, it will block until the parent reads from its STDERR, but the parent is blocked reading the from the child's STDOUT.

open3 is too low-level for most tasks. perlcritic should not have recommended this. Please use IPC::Run3 or IPC::Run instead.

I have just raised this issue here.