Test::Snapshots. Testing several command line-ish executables by saving INPUT, command line ARGUMENTs expected OUTPUT, ERROR and EXIT code in exernal files.

bin/abc.exe

bin/abc.exe.in
bin/abc.exe.argv

bin/abc.exe.out
bin/abc.exe.err
bin/abc.exe.exit