in reply to Re^2: exists(&subname) causes strange autovivification problem (workaround)
in thread exists(&subname) causes strange autovivification problem

So don't use them!

sub sub_exists { my $name = shift; no strict qw( refs ); return exists( &$name ); }

Bonus: Not limited to subs in the current namespace.

To avoid the bug the OP identified, place the sub outside of scope of no autovivification;, or add use autovivification; to it.

sub sub_exists { my $name = shift; no strict qw( refs ); use autovivification; # Disable module to avoid bug. return exists( &$name ); }