You can combine several lines of perl code with repeated parameters -e (be sure to complete them with ;- they are strung together to form a program). And you can make the pipes "hot" with $|=1. See the perl$| manual for details (2/3 down the page, search for OUTPUT_AUTOFLUSH).
{ for i in `seq 3` ; do echo $i ; sleep 1 ; done ; } \
| perl -p -e 'BEGIN{$|=1};' \
-e 's,(.*ERROR.*),\e[01;31m\1\e[00m,g;' \
-e 's,(.*WARNING.*),\e[01;33m\1\e[00m,g;' \
-e 's,(.*TCPEchoTest.*),\e[01;30m\1\e[00m,g;' \
-e 's,(.*enters.*),\e[00;33m\1\e[00m,g;'
1, 2, 3 . , BEGIN , perl . , .