in reply to line by line reading named pipes
print provides list context and <> in list context reads the complete data, i.e. until EOF, before doing anything else. Use
while (<FIFO>) { print } [download]