
Term::filter is a moose role which implements running a program in a pty while being able to filter the data that goes into and out of it. this can be used to alter the inputs and outputs of a terminal based program, or to intercept the data going in or out to record it or rebroadcast it.