Perl::Version provides a simple interface for parsing, manipulating
and formatting Perl version strings.
Several of the builtins in Perl 6 have different (i.e. more useful, less
confusing) behaviours than their Perl 5 counterparts. This module provides
Perl 5 versions of those builtins.
Polymorphic return values are really useful. Often, we just want to
know if something worked or not. Other times, we'd like to know what
the error text was. Still others, we may want to know what the error
code was, and what the error properties were. We don't want to handle
objects or data structures for every single return value, but we do want
to check error conditions in our code because that's what good
programmers do.
Implements a Perl 5 native version of what the Perl 6 symbol export mechanism
will look like.
It's very straightforward:
* If you want a subroutine to be capable of being exported (when
explicitly requested in the use arguments), you mark it with the
:Export attribute.
* If you want a subroutine to be automatically exported when the module
is used (without specific overriding arguments), you mark it with the
:Export(:DEFAULT) attribute.
* If you want a subroutine to be automatically exported when the module
is used (even if the user specifies overriding arguments), you mark it
with the :Export(:MANDATORY) attribute.
* If the subroutine should also be exported when particular export
groups are requested, you add the names of those export groups to the
attribute's argument list.
That's it.
"Pipelines" are a mechanism to process data. They are designed to be
plugged together to make fairly complex operations act in a fairly
straightforward manner, cleanly, and simply.
Perl6::Form - Implements the Perl 6 'form' built-in
This module implements virtually all of the functionality of the
Perl 6 Form.pm module. The only differences are:
Option pairs must be passed in a hash reference;
Array data sources must be passed as array references;
Options specified on the use Perl6::Form line are not (yet)
lexically scoped;
User-defined line-breaking subroutines are passed their data
source as a reference to a scalar;
This module implements a close simulation of the Perl 6 rule and grammar
constructs, translating them back to Perl 5 regexes via a source filter.
(And hence suffers from all the usual limitations of a source filter,
including the ability to translate complex code spectacularly wrongly).
Perl6::Slurp implements the Perl 6 'slurp' built-in. slurp takes a filename, a
filehandle, a typeglob reference, an IO::File object, or a scalar reference,
and converts it to an input stream if necessary, and reads in the entire stream.
If slurp fails to set up or read the stream, it throws an exception.
This layer normalizes any of CR, LF, CRLF and Native into the designated
line ending. It works for both input and output handles.
PerlIO::utf8_strict provides a fast and correct UTF-8 PerlIO layer. Unlike
perl's default :utf8 layer it checks the input for correctness.