У меня есть некоторые проблемы с модулем PPI:
Предположим, у меня есть Foo.pm:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub foo2 { 1; }
sub foo3 { 1; }
1;
, и я хочу использовать PPI, чтобы получить все сабвуферы:
#!/usr/bin/env perl
use PPI;
my $filename = shift;
my $Document = PPI::Document->new($filename);
my $subs = $Document->find('PPI::Statement::Sub');
warn $#$subs;
в результате я получил '3', что является правильным.
, но когда одна из моих подпрограмм в Foo.pm называется 'sub vN ...', где N - это число, например:
sub v1foo {}
или
sub v3bar {}
или просто
sub v2 {}
PPI :: Поиск документа, кажется, прерывает разбор и возвращает только уже найденные подпрограммы.Поэтому, если я изменю Foo:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub v2xx { 1; }
sub foo3 { 1; }
1;
Результатом моего теста будет "1" (найдены подпрограммы foo0 и foo1)
Объявляет имена подпрограмм наподобие v [0..9]как-то запрещено?
Привет.