Type::Tiny::Manual::Installation(3) User Contributed Perl Documentation
NAME
Type::Tiny::Manual::Installation - how to install Type::Tiny
MANUAL
Installing Type-Tiny should be straightforward.
Installation with cpanminus
If you have cpanm, you only need one line:
% cpanm Type::Tiny
If you are installing into a system-wide directory, you may need to
pass the "-S" flag to cpanm, which uses sudo to install the module:
% cpanm -S Type::Tiny
Installation with the CPAN Shell
Alternatively, if your CPAN shell is set up, you should just be able to
do:
% cpan Type::Tiny
Manual Installation
As a last resort, you can manually install it. Download the tarball and
unpack it.
Consult the file META.json for a list of pre-requisites. Install these
first.
To build Type-Tiny:
% perl Makefile.PL
% make && make test
Then install it:
% make install
If you are installing into a system-wide directory, you may need to
run:
% sudo make install
Dependencies
Type::Tiny requires at least Perl 5.8.1, though certain Unicode-related
features (e.g. non-ASCII type constraint names) may work better in
newer versions of Perl.
Type::Tiny requires Exporter::Tiny, a module that was previously
bundled in this distribution, but has since been spun off as a separate
distribution. Don't worry - it's quick and easy to install.
At run-time, Type::Tiny also requires the following Perl modules: B,
B::Deparse, Carp, Data::Dumper, Scalar::Util, Text::Balanced, overload,
strict, and warnings. All of these come bundled with Perl itself.
Certain features require additional modules. Stack traces on exceptions
require Devel::StackTrace. The Reply::Plugin::TypeTiny plugin for Reply
requires Reply (obviously).
Type::Tiny::XS is not required, but if available provides a speed boost
for some type checks. (Setting the environment variable
"PERL_TYPE_TINY_XS" to false, or setting "PERL_ONLY" to true will
suppress the use of Type::Tiny::XS, even if it is available.)
The test suite additionally requires Test::More, Test::Fatal and
Test::Requires. Test::More comes bundled with Perl, but if you are
using a version of Perl older than 5.14, you will need to upgrade to at
least Test::More version 0.96. Test::Requires and Test::Fatal (plus
Try::Tiny which Test::Fatal depends on) are bundled with Type::Tiny in
the "inc" directory, so you do not need to install them separately.
If using Type::Tiny in conjunction with Moo, then at least Moo 1.006000
is recommended. If using Type::Tiny with Moose, then at least Moose
2.0000 is recommended. If using Type::Tiny with Mouse, then at least
Mouse 1.00 is recommended. Type::Tiny is mostly untested against older
versions of these packages.
Type::Tiny and cperl
cperl is an extended version of Perl with
various incompatible changes from the official Perl 5 releases.
As of Type::Tiny 1.010001, cperl is a supported platform for Type::Tiny
with some caveats. At the time of writing, Moose will not install on
the latest cperl releases, so using Type::Tiny with Moose on cperl is
untested. Moo can be forced to install, and Type::Tiny is verified to
work with Moo on cperl. cperl not only enables a new warnings category
called "shadow" (which is good; they're potentially useful) but
switches on shadow warnings by default (which is annoying). Type::Tiny
does not (and likely will never) attempt to work around these warnings.
If the warnings bother you, you should be able to catch them using
$SIG{__WARN__}. Certain features of Eval::TypeTiny are broken under
cperl, but they're not thought to have any practical effect on
Type::Tiny or its other bundled modules.
NEXT STEPS
Here's your next step:
o Type::Tiny::Manual::UsingWithMoo
Basic use of Type::Tiny with Moo, including attribute type
constraints, parameterized type constraints, coercions, and method
parameter checking.
AUTHOR
Toby Inkster .
COPYRIGHT AND LICENCE
This software is copyright (c) 2013-2014, 2017-2023 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
DISCLAIMER OF WARRANTIES
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
perl v5.40.0 2024-09-01
Type::Tiny::Manual::Installation(3)