BEGIN { $^W=1; print "1..3\n"; } use ExtUtils::testlib; use Apache::Symbol (); use strict; package Foo; @Foo::ISA = qw(Apache::Symbol); sub one {1} sub constant_one () {1} #comment out the line below and you'll see something like: #Subroutine one redefined at (eval 1) line 1. #Constant subroutine constant_one redefined at (eval 2) line 1. Foo->undef_functions; eval "sub one {1}"; eval "sub constant_one () {1}"; print "ok 1\n"; my $name = Apache::Symbol::sv_name(\&Foo::one); print "not " unless $name eq "Foo::one"; print "ok 2\n"; package main; sub THREE () {3} my $sv = Apache::Symbol::cv_const_sv(\&THREE) or print "not "; $sv ||= "3 (failed!)"; print "ok $sv\n";