diff -rup B-Lint-1.17-dh_SSg-orig/blib/arch/B/Lint.pm B-Lint-1.17-dh_SSg/blib/arch/B/Lint.pm
--- B-Lint-1.17-dh_SSg-orig/blib/arch/B/Lint.pm 2013-01-26 07:20:41.000000000 -0800
+++ B-Lint-1.17-dh_SSg/blib/arch/B/Lint.pm 2014-09-28 11:55:43.000000000 -0700
@@ -196,7 +196,7 @@ use strict;
use B qw( walkoptree_slow
main_root main_cv walksymtable parents
OPpOUR_INTRO
- OPf_WANT_VOID OPf_WANT_LIST OPf_WANT OPf_STACKED SVf_POK );
+ OPf_WANT_VOID OPf_WANT_LIST OPf_WANT OPf_STACKED SVf_POK SVf_ROK );
use Carp 'carp';
# The current M::P doesn't know about .pmc files.
@@ -622,7 +622,9 @@ UNDEFINED_SUBS: {
and $op->next->name eq "entersub";
my $gv = $op->gv_harder;
- my $subname = $gv->STASH->NAME . "::" . $gv->NAME;
+ my $cv = $gv->FLAGS & SVf_ROK ? $gv->RV : undef;
+ my $subname = ($cv || $gv)->STASH->NAME . "::"
+ . ($cv ? $cv->NAME_HEK || $cv->GV->NAME : $gv->NAME);
no strict 'refs'; ## no critic strict
if ( not exists &$subname ) {
diff -rup B-Lint-1.17-dh_SSg-orig/lib/B/Lint.pm B-Lint-1.17-dh_SSg/lib/B/Lint.pm
--- B-Lint-1.17-dh_SSg-orig/lib/B/Lint.pm 2014-09-28 11:55:32.000000000 -0700
+++ B-Lint-1.17-dh_SSg/lib/B/Lint.pm 2014-09-28 11:55:43.000000000 -0700
@@ -196,7 +196,7 @@ use strict;
use B qw( walkoptree_slow
main_root main_cv walksymtable parents
OPpOUR_INTRO
- OPf_WANT_VOID OPf_WANT_LIST OPf_WANT OPf_STACKED SVf_POK );
+ OPf_WANT_VOID OPf_WANT_LIST OPf_WANT OPf_STACKED SVf_POK SVf_ROK );
use Carp 'carp';
# The current M::P doesn't know about .pmc files.
@@ -622,7 +622,9 @@ UNDEFINED_SUBS: {
and $op->next->name eq "entersub";
my $gv = $op->gv_harder;
- my $subname = $gv->STASH->NAME . "::" . $gv->NAME;
+ my $cv = $gv->FLAGS & SVf_ROK ? $gv->RV : undef;
+ my $subname = ($cv || $gv)->STASH->NAME . "::"
+ . ($cv ? $cv->NAME_HEK || $cv->GV->NAME : $gv->NAME);
no strict 'refs'; ## no critic strict
if ( not exists &$subname ) {