Util::XML_YAML_Perl - Interconversion between PERL,YAML and XML.
Version 1.0.0
This module serves as single point for all typical operations done on these three -PERL,YAML and XML. Also this doesnt degrade any of advanced features provided by independent modules.
This will serve as quick point for interconversions saving time of experimenting with atleast two independent modules.
use XML::YAML_PERL; #create XML::YAML_PERL object my $obj=XML::YAML_PERL->new(); my $perl_ref=$obj->xml_to_perl($filename); my $b=$obj->xml_to_perl('-'); my $y_ref=$obj->perl_to_yaml($hash); $y_ref=$obj->perl_to_yaml($hash,$file); $y_ref->dump($file); $y_ref->dump(); $y_ref->get_h; $y_ref->get("h"); $y_ref->set("h",10); $y_ref->set_h(10); $y_ref->config->{h}=10; my $yaml_ref=$obj->xml_to_yaml($filename); my $xml_string=$obj->perl_to_xml($perl_ref); my $xml_file=$obj->perl_to_xml($perl_ref,$options); my $hash=$obj->yaml_to_perl('m.yml'); my $hash=$obj->yaml_to_perl($string); my $xml_string=$obj->yaml_to_xml($yaml_ref); my $xml_file=$obj->yaml_to_xml($yaml_ref,$op); read more about methods with examples below.
Retuns a bless object. This module has no exported methods to it has to be used in OOO way only.
my $obj = XML::YAML_PERL->new();
Convert XML into perl hash. my $perl_ref=$obj->xml_to_perl($filename); To read from STDIN, File name should be '-'. Options of XML::Simple can be used. C<$options> is a ref to array consisting of options available on XML::Simple. returns perl hash
1) $ cat a.xml <?xml version='1.0'?> <employee> <name>John Doe</name> <age>43</age> <sex>M</sex> <department>Operations</department> </employee> my $b=$obj->xml_to_perl('a.xml'); print "".Dumper($b); $VAR1 = { 'department' => 'Operations', 'name' => 'John Doe', 'sex' => 'M', 'age' => '43' }; 2) my $b=$obj->xml_to_perl('-'); #Such a call with wait for XML input to be teminated by Ctrl+d $ perl c.pl <employee> <name>John Doe</name> <age>43</age> <sex>M</sex> <department>Operations</department> </employee> [CTRL+D] $VAR1 = { 'department' => 'Operations', 'name' => 'John Doe', 'sex' => 'M', 'age' => '43' };
Converts perl hash into YAML string or file. $perl_ref - perl hash $file - File to write into (optional) returns YAML::AppConfig object my $hash={h=>1, m=>4}; my $y_ref=$obj->perl_to_yaml($hash); $y_ref=$obj->perl_to_yaml($hash,$file); print $y_ref->dump(); #prints Yaml equivalent for perl object $y_ref->dump($file); #prints Yaml equivalent into C<$file>for perl object $y_ref->get_h; #returns value of h $y_ref->get("h"); #returns value of h # Set etc_dir in three different ways, all equivalent. $y_ref->set("h",10); $y_ref->set_h(10); $y_ref->config->{h}=10; Above described dump,get_*/set_* methods will work on Yaml reference objects returned by other subroutines in this module.
Converts XML string/file into YAML string or file. $xml_file- XML file path $options- to be drawn from XML::Simple[optional] returns YAML::AppConfig object dump() get_*() set_*() read how above methods work from perl_to_yaml().
Converts perl hashes into XML string/File $perl_ref - refernce to perl hash $options- to be drawn from XML::Simple[optional] returns XML string returns 1 if file written. open my $fh, '>:encoding(iso-8859-1)', $path or die "open($path): $!"; my $op=[OutputFile => $fh]; my $return_val=$obj->perl_to_xml($perl_ref,$options)
my $hash={h=>1, m=>4}; my $d=$obj->perl_to_xml($hash); open(my $fh,">","ur.xml") or die $!; my $op=[OutputFile => $fh]; my $d=$obj->perl_to_xml($hash,$op);
Converts YAML hashes into perl. $yaml_ref - can be YAML string /YAML syntax file returns reference to perl hash
1) $cat m.yaml --- age: 43 department: Operations name: John Doe sex: M my $b=$obj->yaml_to_perl('m.yml'); print Dumper($b); $VAR1 = { 'department' => 'Operations', 'name' => 'John Doe', 'sex' => 'M', 'age' => '43' }; 2) my $string='--- age: 43 department: Operations name: John Doe sex: M '; my $b=$obj->yaml_to_perl($string); print Dumper($b); $VAR1 = { 'department' => 'Operations', 'name' => 'John Doe', 'sex' => 'M', 'age' => '43' };
Convert YAML string/file into XML file/string $yaml_ref - can be YAML string /YAML syntax file $options - you are free to use XML::Simple options [ OutputFile => $file_handle ] Returns XML string. Incase of writing to file returns 1;
my $xml_string=$obj->yaml_to_xml($yaml_ref); #to write XML to file open ( $c,">", "kl.xml") or die $!; my $op=[OutputFile=>$c]; my $return_val=$obj->yaml_to_xml($yaml_ref,$op); #returns 1 on success
Feel free to abuse or praise me.
Ravi Chandra. M, <rchandram\ at cpan.org>
<rchandram\ at cpan.org>
2011-08-18, v1.0.0 - rchandram
Please report any bugs or feature requests to bug-util-xml_yaml_perl at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Util-XML_YAML_Perl. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-util-xml_yaml_perl at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc Util::XML_YAML_Perl
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Util-XML_YAML_Perl
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Util-XML_YAML_Perl
CPAN Ratings
http://cpanratings.perl.org/d/Util-XML_YAML_Perl
Search CPAN
http://search.cpan.org/dist/Util-XML_YAML_Perl/
To install Util::XML_YAML_Perl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Util::XML_YAML_Perl
CPAN shell
perl -MCPAN -e shell install Util::XML_YAML_Perl
For more information on module installation, please visit the detailed CPAN module installation guide.