我收到了错误
Undefined subroutine& HTML :: Entities :: decode_entities called`
使用LWP::UserAgent,虽然模块在那里,但HTML::Parser模块。
我怀疑它与缺少的XS模块有关,因为有问题的功能似乎是在XS中实现的,但我不知所措。
答案 0 :(得分:1)
HTML :: Entities的最新版本依赖于通过加载HTML :: Parser模块的XS组件来获取decode_entities例程。由于这两个模块是分布在一起的,这应该不是问题,但是你可能有一个较旧的HTML :: Parser版本而不是使用XS(或者安装了多个版本的HTML :: Parser,错误的是先找到了。
检查HTML :: Parser中的$ VERSION,在http://search.cpan.org/dist/HTML-Parser上查找该分发,并验证分发是否具有您拥有的HTML :: Entities的版本。
答案 1 :(得分:-1)
你错过了这一行:
use HTML::Entities;
来自HTML::Entities CPAN page,应该像这样使用:
use HTML::Entities;
my $a = "Våre norske tegn bør æres";
decode_entities($a);
encode_entities($a, "\200-\377");
如果您认为HTML :: Entities包有问题,可以检查系统上的源代码。来自bash:
vim $(perldoc -l HTML::Entities)
在文本编辑器中打开文件后,您可以检查是否已定义子例程。我怀疑包装是正确的,更有可能的是包装没有被“使用”。
您也可以在命令行测试它,看看它是否在您的程序之外工作:
perl -MHTML::Entities -le 'print HTML::Entities::decode_entities( "Våre norske tegn bør æres" )'