use PPI; my $doc = PPI::Document->new(shift || die "Give a doc!\n"); my $subs = $doc->find("PPI::Statement::Sub"); for my $sub ( @$subs ) { my $start = $sub->line_number; my $lines = $sub =~ y/\n//; my $end = $start + $lines; print "Found a subroutine starting at line ", $start, " and ending at line ", $end, $/; }