That module is really cool. I wrote the following filter to use with it to generate line numbers:
use Filter::Handle qw/subs/;
use strict;
{
my( $i, $n ) = (0,1); # Scoped, only the filter sees them
Filter \*STDOUT,
sub
{
@_ = @_; # Laziness
my $string = $n ? "Line ".++$i.": " : "";
for(@_){ s/\n(.)/"\nLine ".++$i.": $1"/egm; $string .= $_ }
$n = $_[$#_] =~ /\n$/;
return $string;
}
}
# A quick test:
print "line 1\n";
print 'line 2', ' line 2 cont.';
print ' more stuff for line 2', "\n";
print "this is line 3\nand this is line 4";
print "\nthis is line 5";
__END__
# And yes, this prints:
Line 1: line 1
Line 2: line 2 line 2 cont. more stuff for line 2
Line 3: this is line 3
Line 4: and this is line 4
Line 5: this is line 5