у меня проблемы с модулем 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::Document find кажется прерывает парсинг и возвращает только уже найденные сабы. Итак, если я изменю Foo:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub v2xx { 1; }
sub foo3 { 1; }
1;
Результатом моего теста будет "1" (найдены подпрограммы foo0 и foo1)
Запрещено ли как-то объявлять имена подпрограмм типа v[0..9]?
Приветствую.