Subject: | v-numbers bug |
Date: | Mon, 30 Jan 2012 13:14:09 +0100 |
To: | bug-PPI [...] rt.cpan.org |
From: | "Robert E. Debowski" <robert.e.debowski [...] gmail.com> |
Hi,
i think i found a tiny little bug in PPI:
i have a package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub foo2 { 1; }
sub foo3 { 1; }
1;
and i want to use PPI to get all the subs:
#!/usr/bin/env perl
use PPI;
my $filename = shift;
my $Document = PPI::Document->new($filename);
my $subs = $Document->find('PPI::Statement::Sub');
warn $#$subs;
as result i got '3' which is correct.
but when one of my subs in Foo.pm is called 'sub vN...', where N is a
number, f.e.:
sub v1foo {}
or
sub v3bar {}
or simply
sub v2 {}
PPI::Document find seems to break parsing and returns only the already
found subs. So if i modify Foo:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub v2xx { 1; }
sub foo3 { 1; }
1;
Result of my test would be "1" (found subs are foo0 and foo1)
Folks @ stackoverflow suggest this might be a bug, and i should let
you know, so here it is.
http://stackoverflow.com/questions/9063067/ppidocument-bug-or-some-special-subroutine-name/9063360#9063360
$ perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
$ uname -a
Linux kibo 2.6.18-274.12.1.el5 #1 SMP Tue Nov 29 13:37:46 EST 2011
x86_64 x86_64 x86_64 GNU/Linux
--
Robert Edward Dębowski