use warnings;
use strict;
use Devel::Examine::Subs;
my $des = Devel::Examine::Subs->new(file => '.');
my $data = $des->all;
for my $file (keys %$data){
print "$file:\n";
for my $sub (@{ $data->{$file} }){
print "\t$sub\n";
}
}
####
lib/Mock/Sub/Child.pm:
new
_mock
remock
unmock
called
called_count
called_with
name
reset
return_value
side_effect
_check_side_effect
mocked_state
_no_warn
DESTROY
_end
lib/Mock/Sub.pm:
import
new
mock
mocked_subs
mocked_objects
mocked_state
DESTROY
__end
##
##
use warnings;
use strict;
use feature 'say';
use Devel::Examine::Subs;
my $des = Devel::Examine::Subs->new(file => 'lib/Mock/Sub.pm');
my $subs = $des->objects;
for my $sub (@$subs){
say $sub->name;
say "\tstart line: ". $sub->start;
say "\tend line: " . $sub->end;
say "\tline count: " . $sub->line_count;
# the following would list out the entire code block
# for the sub. Commented out for output brevity
#say "\tsub code:";
#say "\t\t$_" for @{ $sub->code };
}
##
##
import
start line: 14
end line: 17
line count: 4
mocked_objects
start line: 74
end line: 82
line count: 9
new
start line: 18
end line: 26
line count: 9
DESTROY
start line: 100
end line: 101
line count: 2
__end
start line: 102
end line: 102
line count: 1
mocked_state
start line: 83
end line: 99
line count: 17
mocked_subs
start line: 62
end line: 73
line count: 12
mock
start line: 27
end line: 61
##
##
use warnings;
use strict;
use Devel::Examine::Subs;
my $des = Devel::Examine::Subs->new(file => 'Logging::Simple');
my $subs = $des->all;
print "$_\n" for @$subs;
##
##
BEGIN
_sub_names
new
level
file
name
timestamp
levels
labels
display
print
child
custom_display
fatal
_generate_entry
_levels
_log_only