http://qs1969.pair.com?node_id=625035


in reply to Re: SmallTalk-like Message browser
in thread SmallTalk-like Message browser

The output roughly means the following:
--- <filename>: <subname>: called from: <filename>:<subname>: <this many times>
The reason you're seeing odd results is a limitation of static analysis. If you have two packages with identically named methods, then their usage gets lumped together. That is, One->new and Two->new are grouped, and count as two calls to new.

# file Classone.pm package Classone; sub new { } 1; # file Classtwo.pm package Classtwo; sub new { } sub a_method { Classone->new; Classtwo->new; } 1;
Those two files result in:
Classone.pm: new: Classtwo.pm:a_method: 2 Classtwo.pm: a_method: {} new: Classtwo.pm:a_method: 2

I don't think you can get meaningful results unless you have an interactive environment -- like Squeak -- that can track the class of the invocant. Still, this is a nice approximation. As long as you keep the limitations in mind, it can be quite useful.