use warnings; use strict; use Inline C => <<'EOC'; SV * test (CV * x, char * name) { if(x == get_cv(name, 0)) return newSVuv(1); return newSVuv(0); } EOC package Foo; sub bar {}; package main; my $coderef = \&Foo::bar; my $null; print test($coderef, "Foo::bar"), "\n"; # 1 print test($coderef, "Foo::Bar"), "\n"; # 0 print test($null, "Foo::Bar"), "\n"; # dies appropriately #### SV * test (SV * x, char * name) { if((CV*)SvRV(x) == get_cv(name, 0)) return newSVuv(1); return newSVuv(0); } #### SV * foo1(SV * x) { return newSVpv(HvNAME(CvSTASH((CV*)SvRV(x))), 0); }