| Category: | Miscellaneous |
| Author/Contact Info | Hendrik Van Belleghem (beatnik -at- quickndirty -dot- org) |
| Description: | 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.
I'll probably have it on CPAN at some point. At the moment I stashed up at perlmonk.org. Examples are included and online. Update: removed that second my on $line (thanks blakem). I don't know if it's too obvious but it's not a regular line numbering script. It's a source filter :))) |
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 (belo
+w the shebang).
It will automagically number your lines starting from the line after t
+he 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
|
|
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Source code line numbering
by blakem (Monsignor) on Nov 17, 2001 at 01:26 UTC | |
|
Re: Source code line numbering
by data64 (Chaplain) on Nov 17, 2001 at 07:01 UTC | |
by Beatnik (Parson) on Nov 17, 2001 at 18:53 UTC | |
|
Re: Source code line numbering
by grinder (Bishop) on Nov 19, 2001 at 21:01 UTC |