Peter Karman


SWISH::Prog::Utils - utility variables and methods


 use SWISH::Prog::Utils;
 # use the utils


This class provides commonly used variables and methods shared by many classes in the SWISH::Prog project.



Regular expression of common file type extensions.


Hash of MIME types to their equivalent parser.


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.

parser_for( url )

Returns the SWISH parser type for url. This can be configured via the %ParserTypes class variable.

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.

As of version 0.38 this method is now part of Search::Tools and included here simply as a backcompat feature.

write_log( args )

Logging method. By default writes to stderr via warn().

args is a key/value pair hash, with keys uri and msg.

write_log_line([char, width])

Writes char x width to stderr, to provide some visual separation when viewing logs. char defaults to - and width to 80.


Peter Karman, <>


Please report any bugs or feature requests to bug-swish-prog at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc SWISH::Prog

You can also look for information at:


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.