首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Perl写入xml时遇到问题

使用Perl写入xml时遇到问题
EN

Stack Overflow用户
提问于 2012-11-07 23:57:11
回答 1查看 157关注 0票数 0

下面你可以找到我正在写的脚本。我的问题在脚本下面。

代码语言:javascript
复制
use XML::Writer;
use IO;

@sortedPLATFORMS = qw(win32_x86 win64_x64 linux_x86 linux_x64 solaris_sparc solaris_sparcv9 aix_rs6000 aix_rs6000_64 hpux_pa-risc hpux_ia64);
@STARTS = qw(wdf_22_00 wdf_23_00 wdf_00_00 wdf_01_00 wdf_02_00);

my @waitFors;

my $thisPlatform;
my $thisMachine;
my $thisTask;
my $thisBuild;
my $thisCMD;
my $thisWaitFor;


foreach my $start(@STARTS)
{   
    my $jobFile = "jobs/$start.txt";
    my $doc = new IO::File(">$start.xml", 'w');
    my $writer = new XML::Writer(OUTPUT => $doc) or die "Cannot open file";
    $writer->xmlDecl("UTF-8"); #XML declaration
    $writer->startTag("$start");

    if(open(JOB_FILE,$jobFile))
    {
    while(<JOB_FILE>)
    {
        chomp;
        s-^\s+$--;
        next unless($_);
        next if(/^\;/);
        next if(/\[config\]/);
        next if(/event_dir\s+\=\s+(.+?)$/);

        if(/\[(.+?)\]/)
        {
            getInfos();
        }
        elsif(/^\s+waitfor\s+\=\s+(.+?)$/)
        {
            $thisWaitFor = $1;
            push(@waitFors, "$thisWaitFor");
        }
        elsif(/^\s+command\s+\=\s+(.+?)$/)
        {
            $thisCMD = $1;
            writeXML();
            @waitFors = ();
        }       
    }
}
else
{
    print "something is wrong";
}

$writer->endTag();
    $writer->end();
    $doc->close();
close JOB_FILE;
}

我得到的错误是:

代码语言:javascript
复制
    Can't call method "characters" on an undefined value at createMachineList.pl
 line 96, <JOB_FILE> line 13.

其中,方法"characters"是来自writeXML()子对象的$writer->characters("\n\n");行。

我知道有一个未定义的值传递给了writeXML(),但我不明白为什么。

有没有人能解释一下这个问题?

谢谢你,sSmacKk

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-08 00:13:37

您在循环中声明了my $writer。该函数在循环外部声明。因此,该函数无法访问该变量。要么将其作为参数传递,要么将其设置为全局(不推荐)。您使用的是strictwarnings

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13273345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档