NAME
SWISH::Prog::Utils - utility variables and methods
SYNOPSIS
use SWISH::Prog::Utils;
# use the utils
DESCRIPTION
This class provides commonly used variables and methods shared by many classes in the SWISH::Prog project.
VARIABLES
- $ExtRE
-
Regular expression of common file type extensions.
- %ParserTypes
-
Hash of MIME types to their equivalent parser.
METHODS
mime_type( url [, ext ] )
Returns MIME type for url. If ext is used, that is checked against MIME::Types. Otherwise the url is parsed for an extension using path_parts() and then fed to MIME::Types.
path_parts( url [, regex ] )
Returns array of path, file and extension using the File::Basename module. If regex is missing or false, uses $ExtRE.
perl_to_xml( ref, root_element [, strip_plural ] )
Similar to the XML::Simple XMLout() feature, perl_to_xml() will take a Perl data structure ref and convert it to XML, using root_element as the top-level element.
If strip_plural is a true value and not a CODE ref, any trailing s
character will be stripped from the enclosing tag name whenever an array of hashrefs is found. Example:
my $data = {
values => [
{ two => 2,
three => 3,
},
{ four => 4,
five => 5,
},
],
};
my $xml = $utils->perl_to_xml($data, 'data', 1);
# $xml DOM will look like:
<data>
<values>
<value>
<three>3</three>
<two>2</two>
</value>
<value>
<five>5</five>
<four>4</four>
</value>
</values>
</data>
Obviously stripping the final s
will not always render sensical tag names. Pass a CODE ref instead, expecting one value (the tag name) and returning the tag name to use:
use Lingua::EN::Inflect;
my $xml = $utils->perl_to_xml($data, 'data', \&Lingua::EN::Inflect::PL);
AUTHOR
Peter Karman, <perl@peknet.com>
BUGS
Please report any bugs or feature requests to bug-swish-prog at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc SWISH::Prog
You can also look for information at:
Mailing list
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
COPYRIGHT AND LICENSE
Copyright 2008-2009 by Peter Karman
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.