The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Name

Unexpected::Functions - A collection of functions used in this distribution

Synopsis

   use Unexpected::Functions qw( build_attr_from );

Description

A collection of functions used in this distribution

Also exports any exceptions defined by the caller's EXCEPTION_CLASS as subroutines that return the subroutines name as a string. The calling package can then throw exceptions with a class attribute that takes these subroutines return values

Configuration and Environment

Defines no attributes

Subroutines/Methods

build_attr_from

   $hash_ref = build_attr_from( <whatever> );

Coerces a hash ref from whatever args are passed

catch_class

   use Try::Tiny;

   try         { die $exception_object }
   catch_class [ 'exception_class' => sub { # handle exception }, ... ],
   finally     { # always do this };

See Try::Tiny::ByClass. Checks the exception object's class attribute against the list of exception class names passed to catch_class. If there is a match, call the subroutine provided to handle that exception. Re-throws the exception if there is no match of if the exception object has no class attribute

has_exception

   has_exception 'exception_name' => parents => [ 'parent_exception' ],
      error => 'Error message for the exception with placeholders';

Calls "add_exception" in Unexpected::TraitFor::ExceptionClasses via the calling class which is assumed to inherit from a class that consumes the Unexpected::TraitFor::ExceptionClasses role

inflate_message

   $message = inflate_message( $template, $arg1, $arg2, ... );

Substitute the placeholders in the $template string (e.g. [_1]) with the corresponding argument

is_class_loaded

   $bool = is_class_loaded $classname;

Returns true is the classname as already loaded and compiled

quote_bind_values

   $bool = Unexpected::Functions->quote_bind_values( $bool );

Accessor / mutator package method that toggles the state on quoting the placeholder substitution values in inflate_message. Defaults to true

Diagnostics

None

Dependencies

Exporter::Tiny
Package::Stash
Sub::Install

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

Acknowledgements

Larry Wall - For the Perl programming language

Author

Peter Flanigan, <pjfl@cpan.org>

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