我有一些問題與PPI模塊: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潛艇的一個被稱爲 '子VN ......',其中N是一個數字,FE:
sub v1foo {}
或
sub v3bar {}
或者乾脆
sub v2 {}
PPI :: Document find似乎打破瞭解析並只返回已經找到的subs。 所以,如果我修改符:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub v2xx { 1; }
sub foo3 { 1; }
1;
我測試的結果將是 「1」(發現潛艇是foo0和foo1)
正在申報子程序的名字與V同樣[0..9]不知何故被禁止?
問候。
提示報告這個PPI的bug跟蹤系統:http://p3rl.org/data#Version-Strings – daxim 2012-01-30 11:41:24