Peter Flanigan > Class-Usul > Class::Usul



Annotate this POD



Open  0
View/Report Bugs
Module Version: v0.51.1   Source  

Name ^

Class::Usul - A base class providing config, locking, logging, and l10n

Version ^

Describes Class::Usul version v0.51.$Rev: 1 $

Synopsis ^

   use Moo;

   extends q(Class::Usul);

   $self = Class::Usul->new( $attr );

Description ^

These modules provide a set of base classes for Perl packages and applications that provide configuration file loading Class::Usul::Config, locking to single thread processes IPC::SRLock, logging Class::Usul::Log and localisation Class::Usul::L10N

The class Class::Usul::Programs is a base class for command line interfaces

Interprocess communication is handled by Class::Usul::IPC

Class::Usul::File makes the functionality of File::DataClass available

The Module::Build subclass Class::Usul::Build adds methods for the management and deployment of applications

Configuration and Environment ^

Defines the following attributes;


The config attribute should be a hash ref that may define key/value pairs that provide filesystem paths for the temporary directory etc.


Defaults to Class::Usul::Config and is of type LoadableClass. An instance of this class is loaded and instantiated using the hash ref in the config attribute. It provides accessor methods with symbol inflation and smart defaults. Add configuration attributes by subclassing the default


Defaults to false


Decode input and encode output. Defaults to UTF-8

Defines an instance of IPC::SRLock

Defines the application context log. Defaults to a Log::Handler object

Subroutines/Methods ^


   $self->dumper( $some_var );

Use Data::Printer to dump arguments for development purposes


Defines the lock object. This instantiates on first use

An IPC::SRLock object which is used to single thread the application where required. This is a singleton object. Provides defaults for and returns a new IPC::SRLock object. The keys of the $self->config->lock_attributes hash are:


Debug status. Defaults to $self->debug


Logging object. Defaults to $self->log


Directory used to store the lock file and lock table if the fcntl backend is used. Defaults to $self->config->tempdir

Diagnostics ^

Setting the debug attribute to true causes messages to be logged at the debug level

Dependencies ^


Incompatibilities ^

There are no known incompatibilities in this module

Bugs and Limitations ^

There are no known bugs in this module. Please report problems to the address below. Patches are welcome

Author ^

Peter Flanigan, <>

Acknowledgements ^

Larry Wall - For the Perl programming language

License and Copyright ^

Copyright (c) 2014 Peter Flanigan. All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic

This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

syntax highlighting: