package HMDS::Perl 0.02; ## no critic 'RequirePodSections' # strictures use Modern::Perl '2012'; # dont warn and die in modules use Carp; # always die if open close etc return false use autodie (); # dont use my $var = new MY::Module use indirect (); # use C3 method resulution order use mro (); # use better punctuation var names (man perlvar) use English qw( -no_match_vars ); # better constants use Const::Fast; # This adds the UTF-8 layer on STDIN, STDOUT, STDERR for _everyone_ use open qw( :encoding(UTF-8) :std ); # allow unicode in source 🎅 use utf8 (); # for versions of perl before 5.016 to use \N{FATHER CHRISTMAS} use charnames ':full'; # exception handling use Try::Tiny; # basic date handling by default use DateTime; use Import::Into; sub import { my $caller_level = 1; Modern::Perl->import::into($caller_level); mro::set_mro( scalar caller(), 'c3' ); utf8->import::into($caller_level); indirect->unimport::out_of( $caller_level, ':fatal' ); 'open'->import::into( $caller_level, ':encoding(UTF-8)', ':std' ); charnames->import::into( $caller_level, ':full' ); autodie->import::into( $caller_level, ':all' ); English->import::into( $caller_level, '-no_match_vars' ); DateTime->import::into($caller_level); Try::Tiny->import::into($caller_level); Const::Fast->import::into($caller_level); return; } 1; __END__ =pod =encoding utf8 =for stopwords HMDS::Perl autodie =head1 NAME HMDS::Perl - stuff to import everywhere =head1 VERSION Version 0.02 =head1 SYNOPSIS C =head1 DESCRIPTION Strictures and modules to standardise HILIS4 code Plus some convenience =over 4 =item uses const::Fast instead of constant =item doesn't allow indirect notation, e.g. my $o = new Thing; =item uses autodie =item uses Try::Tiny for exception handling =item uses English for clearer code, e.g, $OS_ERROR instead of $! =item uses utf-8 for unicode in source «yay!» =item uses charnames for unicode characters via \\N{LATIN CAPITAL LETTER A} =back #=head1 SUBROUTINES/METHODS # #=head1 DIAGNOSTICS # #=head1 CONFIGURATION AND ENVIRONMENT # =head1 DEPENDENCIES Const::Fast Try::Tiny =head1 BUGS AND LIMITATIONS This is a first stab at a HMDS module so is likely to change a fair bit =head1 AUTHOR Garry Quested =head1 SEE ALSO perl(1). =head1 LICENSE AND COPYRIGHT Copyright (c) 2018, HMDS. All Rights Reserved. This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.