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 |
Back to
Code Catacombs