NAME

Defaults::Modern - Yet another approach to modernistic Perl

SYNOPSIS

use Defaults::Modern;

# Function::Parameters + List::Objects::WithUtils + types ->
fun to_immutable ( (ArrayRef | ArrayObj) $arr ) {
  # blessed() and confess() are available (amongst others):
  my $immutable = immarray( blessed $arr ? $arr->all : @$arr );
  confess "No items in array!" unless $immutable->has_any;
  $immutable
}

# define keyword for defining constants ->

define ARRAY_MAX = 10;

fun slice_to_max ( ArrayObj $arr ) {
  $arr->sliced( 0 .. ARRAY_MAX )
}

# Optionally autobox list-type refs via List::Objects::WithUtils ->
use Defaults::Modern 'autobox_lists';

my $obj = +{ foo => 'bar', baz => 'quux' }->inflate;
my $baz = $obj->baz;

# See DESCRIPTION for complete details on imported functionality.

DESCRIPTION

Yet another approach to writing Perl in a modern style.

. . . also saves me extensive typing ;-)

When you use Defaults::Modern, you get:

If you import autobox_lists, ARRAY and HASH type references are autoboxed via List::Objects::WithUtils.

Uses Import::Into to provide import; see the Import::Into documentation for details.

SEE ALSO

This package just glues together useful parts of CPAN, the most visible portions of which come from the following modules:

Carp

Function::Parameters

List::Objects::WithUtils

List::Objects::Types

Path::Tiny

PerlX::Maybe

Scalar::Util

Try::Tiny

Types::Standard

Type::Tiny

AUTHOR

Jon Portnoy <avenj@cobaltirc.org>

Licensed under the same terms as Perl.

Inspired by Defaults::Mauke and Moops.

The code backing the define keyword is forked from TOBYINK's PerlX::Define to avoid the Moops dependency and is copyright Toby Inkster.