It looks like you just need to use some recursion if %hash is of variable structure.
print "<SESSION>\n"; print_hash(\%hash); print "</SESSION>\n"; sub print_hash { my $hashref = shift; my $prefix = (@_ ? shift : '') . ' '; foreach my $key (sort keys %$hashref) { print "$prefix<$key>\n"; if (ref $hashref->{$key}) { print_hash($hashref->{$key}, $prefix); } else { print "$prefix $hashref->{$key}\n" } print "$prefix</$key>\n"; } }
Also, look at package solutions like XML::Simple to do all the xml generation for you.
use XML::Simple; use strict; ... print XMLout(\%hash, RootName => 'SESSION');
Update: Parameter processing updated to avoid warnings.
In reply to Re: Veriable Length Array/Hash derived from CSV to populate an XML
by wind
in thread Veriable Length Array/Hash derived from CSV to populate an XML
by TheBigAmbulance
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |