use Devel::Symdump;
my $x = Mod::idx('some string');
print "x=$x\n"; # works, x=5
my $obj = Devel::Symdump->new('Mod'); # crash on 5.10
package Mod;
use constant 'STRING' => 'string';
sub idx {
my $s = shift;
return index($s, STRING);
}
####
local(*ENTRY) = $val;
####
if ($symtab && !exists $symtab->{$name}) {
# No typeglob yet, so we can use a reference as space-
# efficient proxy for a constant subroutine
# The check in Perl_ck_rvconst knows that inlinable
# constants from cv_const_sv are read only. So we have to:
Internals::SvREADONLY($scalar, 1);
$symtab->{$name} = \$scalar;
mro::method_changed_in($pkg);
} else {
*$full_name = sub () { $scalar };
}
####
index($s, scalar STRING)