NAME App::CELL - Configuration, Error-handling, Localization, and Logging VERSION Version 0.162 SYNOPSIS # imagine you have a script/app called 'foo' . . . use Log::Any::Adapter ( 'File', "/var/tmp/foo.log" ); use App::CELL qw( $CELL $log $meta $site ); # load config params and messages from sitedir my $status = $CELL->load( appname => 'foo', sitedir => '/etc/foo' ); return $status unless $status->ok; # write to the log $log->notice("Configuration loaded from /etc/foo"); # get value of site configuration parameter FOO_PARAM my $val = $site->FOO_PARAM; # get a list of all supported languages my @supp_lang = $CELL->supported_languages; # determine if a language is supported print "sk supported" if $CELL->language_supported('sk'); # get message object and text in default language $status = $CELL->msg('FOO_INFO_MSG'); my $fmsg = $status->payload if $status->ok; my $text = $fmsg->text; # get message object and text in default language # (message that takes arguments) $fmsg = $CELL->msg('BAR_ARGS_MSG', "arg1", "arg2"); print $fmsg->text, "\n"; # get text of message in a different language my $sk_text = $fmsg->lang('sk')->text; DESCRIPTION This is the top-level module of App::CELL, the Configuration, Error-handling, Localization, and Logging framework for applications (or scripts) written in Perl. For details, read the POD in the App::CELL distro. For an introduction, read App::CELL::Guide. EXPORTS This module provides the following exports: $CELL - App::CELL singleton object $log - App::CELL::Log singleton object $meta - App::CELL::Config singleton object $core - App::CELL::Config singleton object $site - App::CELL::Config singleton object METHODS appname Get the "appname" attribute, i.e. the name of the application or script that is using App::CELL for its configuration, error handling, etc. enviro Get the "enviro" attribute, i.e. the name of the environment variable containing the sitedir loaded Get the current load status, which can be any of the following: 0 nothing loaded yet 'SHARE' sharedir loaded 'BOTH' sharedir _and_ sitedir loaded sharedir Get the "sharedir" attribute, i.e. the full path of the site configuration directory (available only after sharedir has been successfully loaded) sitedir Get the "sitedir" attribute, i.e. the full path of the site configuration directory (available only after sitedir has been successfully loaded) supported_languages Get list of supported languages. Equivalent to: $site->CELL_SUPPORTED_LANGUAGES || [ 'en ] language_supported Determine if a given language is supported. load Attempt to load messages and configuration parameters from the sharedir and, possibly, the sitedir as well. Takes: a PARAMHASH that should include "appname" and at least one of "enviro" or "sitedir" (if both are given, "enviro" takes precedence with "sitedir" as a fallback). Returns: an "App::CELL::Status" object, which could be any of the following: OK success WARN previous call already succeeded, nothing to do ERR failure On success, it also sets the "CELL_META_START_DATETIME" meta parameter. Status constructors The following "factory" makes a bunch of status constructor methods (wrappers for App::CELL::Status->new ) status_crit Constructor for 'CRIT' status objects status_critical Constructor for 'CRIT' status objects status_debug Constructor for 'DEBUG' status objects status_emergency Constructor for 'DEBUG' status objects status_err Constructor for 'ERR' status objects status_error Constructor for 'ERR' status objects status_fatal Constructor for 'FATAL' status objects status_info Constructor for 'INFO' status objects status_inform Constructor for 'INFORM' status objects status_not_ok Constructor for 'NOT_OK' status objects status_notice Constructor for 'NOTICE' status objects status_ok Constructor for 'OK' status objects status_trace Constructor for 'TRACE' status objects status_warn Constructor for 'WARN' status objects status_warning Constructor for 'WARNING' status objects msg Construct a message object (wrapper for App::CELL::Message::new) LICENSE AND COPYRIGHT Copyright (c) 2014, SUSE LLC All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of SUSE LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.