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

NAME

Starch::Util - Utility functions used internally by Starch.

FUNCTIONS

croak

This is a custom Carp croak function which sets various standard starch packages as Internal so that Carp looks deeper in the stack for something to blame which makes exceptions be more contextually useful for users of Starch and means we don't need to use confess which generates giant stack traces.

load_prefixed_module

    # These both return "Foo::Bar".
    my $module = load_prefixed_module( 'Foo', '::Bar' );
    my $module = load_prefixed_module( 'Foo', 'Foo::Bar' );

Takes a prefix to be appended to a relative package name and a relative or absolute package name. It then resolves the relative package name to an absolute one, loads it, and returns the absolute name.

apply_method_proxies

Given a data structures (array ref or hash ref) this will recursively find all method proxies, call them, and insert the return value back into the data structure.

This creates a new data structure and does not modify the original.

call_method_proxy

    my @ret = call_method_proxy(
        [
            '&proxy'
            'Some::Package',
            'some_method',
            @args,
        ],
    );

Is the same as:

    require Some::Package;
    my @ret = Some::Package->some_method( @args );

Method proxies are defined in more detail at "METHOD PROXIES" in Starch::Manual.

is_method_proxy

    is_method_proxy( [ 'Foo', 'bar' ] ); # false
    is_method_proxy( [ '&proxy', 'Foo', 'bar' ] ); # true

Returns true if the passed value is an array ref where the first value is &proxy.

AUTHORS AND LICENSE

See "AUTHOR" in Starch, "CONTRIBUTORS" in Starch, and "LICENSE" in Starch.