NAME

Arthas::Defaults::536 - Defaults for coding with perl 5.36 - Do not use if you're not Arthas

SYNOPSIS

use Arthas::Defaults::536;

DESCRIPTION

It's like saying:

use v5.36;
use utf8;
use warnings;
no warnings 'uninitialized';
use experimental 'signatures';
use experimental 'try';
use experimental 'defer';
use Carp qw/carp croak confess cluck/;

Might change without notice, at any time. DO NOT USE!

use v5.36

This is actually use feature ':5.36'. It imports some perl 5.10 -> 5.36 semantics, such as strict, given-when syntax, Unicode strings, signatures, ... See feature documentation and source code for more information.

use utf8

This is NOT related to handling UTF-8 strings or input/output (see use feature 'unicode_strings' imported with use v5.20 for something more related to that).

use utf8 is imported in order to allow UTF-8 characters inside the source code: while using UTF-8 in the source is not standard procedure, it happens to me every now and then. Also, enabling this feature does no harm if you're using a recent version of perl, so why not enable it?

use warnings FATAL => 'all'

Warnings are useful, who wouldn't want them?

However, if they are not treated as fatal errors, they are often ignored, making them pointless. So, be fatal!

no warnings 'uninitialized'

Well, most warnings are useful. The ones regarding uninitialized (undef) variables are a bit of a pain. Writing a code such as this:

my $str;

if ( $str eq 'maya' ) {
    say 'Maya!';
}

would emit a warning, thus forcing you to write:

my $str;

if ( defined $str && $str eq 'maya' ) {
    say 'Maya!';
}

which is boring enough to justify suppressing these warnings.

use Carp qw/carp croak confess cluck/

These functions are very useful to show error details better than that of die() and warn().

use experimental 'try'

Try - catch - finally... finally!

use experimental 'defer'

Defer blocks seem to be very useful.

WARNING

The 5.36 version of this module is not compatible with the previous one, bcause it replaces Try::Tiny with Perl's own new Try/Catch syntax, and discards the obsoleted postderef syntax.

AUTHOR

Michele Beltrame, arthas@cpan.org

LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.