Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Pod-Tree CPAN distribution.

Report information
The Basics
Id: 14530
Status: resolved
Priority: 0/
Queue: Pod-Tree

People
Owner: SWMCD [...] cpan.org
Requestors: adamk [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in:
  • 1.11
  • 1.12
  • 1.13
Fixed in: 1.14



Subject: Pod::Tree::HTML crashes Perl in ->isa calls
Pod::Tree::HTML's approach to using isa causes perl to die when you do a simple if ( Pod::Tree::HTML->isa('Pod::Tree::HTML') ) { print "Pod::Tree::HTML is itself"; } This is because you are doing something REALLY weird with UNIVERSAL::isa. use vars qw{&isa}; # This breaks ->isa and is horribly horribly evil local *isa = \&UNIVERSAL::isa; # Temporarily fix isa so it doesn't crash. You really really need to fix this, it crashes any code or module that scans the symbol table of the current loaded application, as nobody would ever think to eval { $class->isa } once they've checked $class is a valid class name. The alternative would be to simply use UNIVERSAL::isa directly the two times you use it. isa $dest, 'HTML::Stream' and return $dest; should become UNIVERSAL::isa($dest, 'HTML::Stream') and return $dest; Actually... that's not real friendly either, because it means that something can't mock or decorate a HTML::Stream object. But getting rid of that use vars qw{&isa}; is the badly needed bit.