Да, команда будет выполнена, если код не использует что-то вроде autodie .
open($fh, '-|')
возвращает undef
при сбое, что ложно, поэтому (не разветвленный) процесс выполнит команду (и, таким образом, завершит себя).
(На несвязанной ноте я и многие другие программисты чувствую, что unless ... else ...
- это плохой стиль, но это допустимый Perl.)