Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Need to use an XML library without dependencies

by envinyater (Initiate)
on Dec 12, 2012 at 21:01 UTC ( #1008587=perlquestion: print w/replies, xml ) Need Help??
envinyater has asked for the wisdom of the Perl Monks concerning the following question:

This is my first post here, so go easy on me :)

Let me give some background, I am working on a project where I am assigned to write a Perl script to gather data and automate specific tasks on a server. We have a system that will deploy the script to each server whenever one is created that runs it as if it was local.

One of my requirements is to send the output to an XML file. I've noticed not all of these servers have the latest version of Perl so I cannot use the perl builtin XML libraries (please correct me if library isn't the right term).

I looked at XML::TinyXML

But it didn't seem intuitive to me by any means. I was looking in the example and it listed that this was being passed into the new method.

my $hash = { a => 'b' , c => 'd', hash => { key1 => 'value1', key2 => 'value2' }, array => [ "arrayval1", { subhashkey => 'subhashvalue' }, [ # XXX - folded arrays will be flattened by actual implement +ation { nome1 => 'subarray1' } , { nome2 => 'subarray2' , 'nome2.5' => 'dfsdf'}, { nested => { nested2_1 => 'nestedvalue', nested2_2 => 'ne +stedvalue2' } }, "subarrayval1", "subarrayval2" ] ] }; my $txml = XML::TinyXML->new($hash); printf("%s \n", $txml->dump);
I'm not too familiar with Perl, but shouldn't that be %hash? Anyway, I tried it but I need to be able to manipulate it better and add to it. Should I stick it out and stay with TinyXML or go with something different?

Replies are listed 'Best First'.
Re: Need to use an XML library without dependencies
by aitap (Curate) on Dec 12, 2012 at 21:17 UTC

    No, {...} constructs a hash reference (which can be assigned to a scalar value, possibly in another hash or even array), not a hash (which is constructed from a LIST ((...)). See perlreftut and perlref for more information on handling references.

    You may want to use XML::Writer if you'd like to write information on the fly, without constructing a data structure first.

    Sorry if my advice was wrong.
      Can I copy and paste the .pm into my script and have it work?
        Yes, it's possible, use fatpack for this.
        Sorry if my advice was wrong.
        I doubt it :) what happens when you try it to see?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1008587]
Approved by moritz
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2018-04-25 18:55 GMT
Find Nodes?
    Voting Booth?