App-Gre
    
    
  
  
  
view release on metacpan or search on metacpan
use Test::More;
use warnings;
sub runcmd {
    my ($cmd) = @_;
    system "$cmd >../stdout 2>../stderr";
    $EXITCODE = $? >> 8;
    if (open my $fh, "<", "../stdout") {
        $STDOUT = do {local $/; <$fh>};
        close $fh;
    }
    if (open my $fh, "<", "../stderr") {
        $STDERR = do {local $/; <$fh>};
        close $fh;
    }
    if ($ENV{DEBUG}) {
        print "STDOUT: $STDOUT\n";
        print "STDERR: $STDERR\n";
        print "EXITCODE: $EXITCODE\n";
    }
    END {system "rm ../stdout ../stderr"}
}
chdir "t/data";
$ENV{PATH} = "../../bin:$ENV{PATH}";
runcmd("gre apple");
my $e = qr{(?:\e\[.*?[mK])*};
my $test = $STDOUT =~ m{
    ^${e}./fruits.txt${e}\n
    ${e}1${e}:${e}apple${e}\n
( run in 0.898 second using v1.01-cache-2.11-cpan-c333fce770f )