NAME
    Sub::Spec::Caller - Call subroutines

VERSION
    version 0.01

SYNOPSIS
     use Sub::Spec::Caller qw(call_sub);
     my $res = call_sub(
         "My::Module",
         "my_func",
         {arg1=>1, arg2=>2},
         {convert_datetime_objects=>1}, # call options
     );

DESCRIPTION
    This module provides one sub: call_sub.

  call_sub($module, $func, $args, \%opts) => $resp
    This is basically just a shorthand for loading the module and calling
    the subroutine, but with some options. It traps exceptions and return
    [500, ...] instead.

    Available options:

    *   load => BOOL (default 1)

        If set to 0, do not try to load the module. Thus, you need to load
        the module manually beforehand.

    *   convert_datetime_objects => BOOL (default 0)

        Convert datetime objects to Unix epoch time. This might be useful
        when passing result to JSON/YAML for other languages.

    For minimum overhead, you should load modules and call functions
    directly. call_sub() is mainly used by Sub::Spec::HTTP::Server which
    passes the result into JSON/YAML/etc for external purposes.

SEE ALSO
    Sub::Spec::Runner

AUTHOR
    Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Steven Haryanto.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

