I'm still working on this problem, and have decided to try the perl PPI.
I'm a little stuck on how to find all calls to Mod::func within PPI. I've successfully read in the document, and am calling the PPI::Node->find method.
http://search.cpan.org/~adamk/PPI-1.203/lib/PPI/Node.pm#find_$class_|_\&wanted
My first question is how to construct the anonymous subroutine to find all PPI::Statements that match Mod::func.
A second question is if it is possible to extract the line number of the statement from PPI. Otherwise I may also use B::Xref and hope that the Mod::func calls that it finds matches the ones returned by PPI.
Update: here's the code I'm working on right now, but the 'and' condition in the anonymous sub is returning false on everything. Hopefully the intent is clear though
# find all statements that have a PPI::Token::Word with "Mod::func"
my $res = $Doc->find (
sub {
$_[1]->isa('PPI::Statement')
and
$_[1]->contains('PPI::Token::Word')
}
);