#!/usr/bin/perl -w # Strict use strict; use warnings; # Libraries use IPC::Open3; use Symbol qw(gensym); use IO::File; #################### ### Main program ### #################### # User-defined my $module = "mymodule"; my $OLD = "1.41"; my $NEW = "1.42"; my $cmd = "cvs rlog -r${OLD}::${NEW} -SN $module"; local *CATCHOUT = IO::File->new_tmpfile; local *CATCHERR = IO::File->new_tmpfile; my $pid = open3(gensym(), ">&CATCHOUT", ">&CATCHERR", $cmd); waitpid($pid, 0); seek(\*CATCHOUT, 0, 0); seek(\*CATCHERR, 0, 0); process_stdout(*CATCHOUT); process_stderr(*CATCHERR); sub process_stdout { my ($outfh) = @_; while (my $line = <$outfh>) { # Handle $line from STDOUT chomp $line; print "\e[102m$line\e[m\n"; # Change this } } sub process_stderr { my ($errfh) = @_; while (my $line = <$errfh>) { # Handle $line from STDERR chomp $line; print "\e[101m$line\e[m\n"; # Change this } }