http://www.perlmonks.org?node_id=901221


in reply to PDF::FromHTML subroutine not found

A similar bug has been recorded 11 months ago.

Looking at the source (and showing my findings...), I don't readily see what causes this behaviour. The relevant pieces of the code are:

use constant HAS_HTML_TIDY => do { local $@; eval { require HTML::Tidy; 1 } or do { unless ( eval { require XML::Clean; 1 } ) { die( "Please install HTML::Tidy (preferred) or XML::Clean +first" ); } 0; # Has XML::Clean but no HTML::Tidy }; }; ... sub parse_file { ... if (HAS_HTML_TIDY()) { }

It seems to me that the use constant does somehow not have the effect of declaring HAS_HTML_TIDY, but I don't see how that happens.

Do you have HTML::Tidy installed? Also, as you seem to be running the system Perl, how did you install the module? Did you use your vendor's package manager?

Replies are listed 'Best First'.
Re^2: PDF::FromHTML subroutine not found
by jonnyfolk (Vicar) on Apr 25, 2011 at 22:16 UTC

    Your hunch turns out to be correct, thank you.

    HTML::Tidy is now installed, and the module is creating PDF. Perhaps the only 'bug' is a slightly misleading error message? :)

Re^2: PDF::FromHTML subroutine not found
by jonnyfolk (Vicar) on Apr 25, 2011 at 18:52 UTC
    I'm running VPS and used the cpanel install service. HTML::Tidy is not installed and interestingly the install failed! I've requested installation for that.