On Fri, 11 Jan 2002 14:47:08 -0800, [EMAIL PROTECTED] (Gary Hawkins) wrote:
>Seems a good example of how every little question has some merit. You just
>never know.
>
>So Hewlett's question gave me an idea. Just print my scripts to the screen
>with line numbers added. My life is now better. Sure beats arrow-down
>counting.
Hi, I found a nifty little perl module on Perlmonks.org.
It is called Filter::NumberLines
What is nice about this module, is you just say
use Filter::Numberlines;
in your script, and the lines will be numbered AND the script
still runs.
I can't find a url on the net for it, so here it is:
Filter::Numberlines
##############################################
package Filter::NumberLines;
use strict;
use vars qw($VERSION);
use Filter::Util::Call ;
$VERSION = '0.01';
my $line = 0;
sub import {
my ($type) = shift @_;
my ($ref) = [] ;
filter_add(bless $ref) ;
}
sub filter {
my ($self) = @_ ;
my ($status) ;
if (($status = filter_read()) > 0)
{ s/^\d+\:\t//; }
$status ;
}
open(F,"<$0") || die $!;
open(OUTFILE,">$0.bak") || die $!;
$line = 0;
my $no_go = 0;
my $past_use = 0;
$|++;
while(<F>)
{ $line++;
if ($past_use && /^\d+\:\t/) { $no_go++;last; }
if ($past_use)
{ $_ = sprintf ("%03d",$line).":\t".$_; }
if (/use Filter\:\:NumberLines;/)
{ $past_use++; }
print OUTFILE $_;
}
close(OUTFILE);
if (!$no_go)
{ unlink($0) || die $!;
rename ("$0.bak",$0);
close(F);
exit;
} else { unlink("$0.bak") || die $!; }
1;
__END__
=pod
=head1 NAME
Filter::NumberLines - Source filter for Numbering lines.
=head1 SYNOPSIS
Just put use Filter::NumberLines; at the top of your source file (below the
shebang).
It will automagically number your lines starting from the line after the use
statement.
use Filter::NumberLines;
=head1 DESCRIPTION
Filter::NumberLines - Source filter for Numbering lines.
=head1 REQUIREMENTS
Filter::NumberLines requires Filter::Util::Call.
=head1 TODO
Make number of digits in line number configurable.
=head1 DISCLAIMER
This code is released under GPL (GNU Public License). More information can be
found on http://www.gnu.org/copyleft/gpl.html
=head1 VERSION
This is Filter::NumberLines 0.01.
=head1 AUTHOR
Hendrik Van Belleghem (beatnik -at- quickndirty -dot- org)
=head1 SEE ALSO
GNU & GPL - http://www.gnu.org/copyleft/gpl.html
Filter::Util::Call - http://search.cpan.org/search?dist=Filter
Paul Marquess' article
on Source Filters - http://www.samag.com/documents/s=1287/sam03030004/
=cut
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]