consider the following code
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use Data::Dumper;
use XML::Simple;
my $cgi = new CGI( { a => 1, b=> 2, source => 3 } );
my $elements = $cgi->Vars();
DOIT();
$elements = {
'source' => {
'a' => '1',
'b' => '2',
}
};
DOIT();
$elements = {
'butterscotch' => {
'a' => '1',
'b' => '2',
},
'content' => "Look at me Maa, I'm eating buttterscotch",
};
DOIT();
sub DOIT {
my $xs = new XML::Simple();
my $xml = $xs->XMLout(
$elements,
rootname => 'source'
);
print Dumper $elements;
print $xml;
print '='x60,"\n";
}
__END__
$VAR1 = {
'a' => '1',
'b' => '2',
'source' => '3'
};
<source></source>
============================================================
$VAR1 = {
'source' => {
'a' => '1',
'b' => '2'
}
};
<source>
<source a="1" b="2" />
</source>
============================================================
$VAR1 = {
'butterscotch' => {
'a' => '1',
'b' => '2'
},
'content' => 'Look at me Maa, I\'m eating buttterscotch'
};
<source>Look at me Maa, I'm eating buttterscotch<butterscotch a="1" b=
+"2" />
</source>
============================================================
Now please go and read the XML::Simple page a little more, and experiment (cause I can't provide better explanation, sorry).
Your best bet is to invoke XMLout like
my $xml = $xs->XMLout(
{ content => 'I am content',
thecgi => $elements,
PARAM => [ $cgi->param('PARAM') ],
},
rootname => 'source',
);
update:
Following BrowserUks example above, just forget about the intermediate hash, and invoke Vars like
my %elements = $cgi->Vars();
So you don't have any problems.
____________________________________________________ ** The Third rule of perl club is a statement of fact: pod is sexy. |