现在我正在尝试生成XML并从Perl中打印出来.我发现这个模块,XML :: Write,看起来相当不错.但是当我想尝试一下时,我遇到了一些相当奇怪的错误......
我的测试脚本看起来像这样
#!/usr/local/bin/perl -w
use strict;
use strict 'refs';
use XML::Writer;
my $writer = XML::Writer->new(OUTPUT => 'self');
$writer->xmlDecl("ISO-8859-1");
$writer->startTag("foo");
$writer->endTag("foo");
$writer->end;
print $writer->to_string;
Run Code Online (Sandbox Code Playgroud)
当我运行它时,唯一的输出是
无法在/usr/lib/perl5/site_perl/5.8.8/XML/Writer.pm第132行通过包"self"找到对象方法"print"(也许你忘了加载"self"?).
我错过了什么?我是否必须安装一些额外的模块才能使perl的OO部分可用?我应该以某种方式安装旧版本的XML :: Write,因为我有一个相当古老的Perl版本?
任何帮助,将不胜感激!
特殊值self的OUTPUT溶液中加入构造函数的选项v0.620.以前,它期望一个IO::Handle或一个标量参考.
安装当前版本以便能够使用此功能,或查阅已安装版本的文档(例如,使用命令行perldoc XML::Writer或在metacpan页面的"转至版本"下拉列表中选择版本.)
对于您的用例,您可以提供参考:
my $output;
my $writer = XML::Writer->new(OUTPUT => \$output);
...;
print $output;
Run Code Online (Sandbox Code Playgroud)