in reply to IPC::Run and start(); pump(); finish()

Is there any error message when the program being pumped dies? If so, maybe you could do something like this:
pump $h until ($out =~ /(BRU Server >)|(error message here)/i);