7¤0ì“S|"I˜3ëÀÀ‚fFDDÉÂÀÀÀ Ç›£¿Ç°ªÕ¶2öZ«›¿i¶ÎœÍó‚â5¤ý7�ž8�j/--Ù"«ý“ínY­ËdùQø+w³s 
FÃñˆH(×…õÀA“%™‘fâ0Ëa…�BÆB      $ñjµ™™BÆˆ€                  @{$CPAN::Config->{dontload_list}||[]};
    if (defined $message && $message eq "no"  # as far as I remember only used by Nox
        ||
        $dont{$mod}
       ) {
      $CPAN::META->{dontload_hash}{$mod}||=1; # unsafe meta access, ok
      return 0;
    }
    local @INC = @INC;
    pop @INC if $INC[-1] eq '.';
    my $file = $mod;
    my $obj;
    $file =~ s|::|/|g;
    $file .= ".pm";
    if ($INC{PTION"
This module\*(Aqs default exports override the core \fBgmtime()\fR function,
replacing it with a version that returns "Time::tm" objects.
This object has methods that return the similarly named structure field
name from the C\*(Aqs tm structure from \fItime.h\fR; namely sec, min, hour,
mday, mon, year, wday, yday, and isdst.
.PP
You may also import all the structure fields directly into your namespace
as regular variables using the :FIELDS import tag.  (Note that this
still overrides your core functions.)  Access these field, ignoring case)
is optional. A single underscore character ("_") may be placed between any two
digits. If the input is invalid, a NaN is returned. The exponent is in base 2
using decimal digits.
.Sp
If called as an instance method, the value is assigned to the invocand.
.IP \fBfrom_bytes()\fR 4
.IX Item "from_bytes()"
.Vb 1
\&    $x = Math::BigFloat\->from_bytes("\exf3\ex6b");  # $x = 62315
.Ve
.Sp
Interpret the input as a byte string, assuming big endian byte order. The
output is always a non\-negative, finite integer.
.Sp
See "\in the future possibly more) flags in one call to
generate the most readable (or most compact) form possible.
.SS indent
.IX Subsection "indent"
.Vb 1
\&    $json = $json\->indent([$enable])
\&    
\&    $enabled = $json\->get_indent
.Ve
.PP
If \f(CW$enable\fR is true (or missing), then the \f(CW\*(C`encode\*(C'\fR method will use a multiline
format as output, putting every array member or object/hash key\-value pair
into its own line, indenting them properly.
.PP
If \f(CW$enable\fR is false, no newlines or indenting will be producand similar whitespace from
disrupting the table.
.Sp
\&\fBNote:\fR newlines are marked as \f(CW\*(C`\en\*(C'\fR, but a newline is also inserted into the
data so that it typically displays in a way that is useful to humans.
.Sp
Example:
.Sp
.Vb 1
\&    my $field = "foo\enbar\enbaz\en";
\&
\&    print join "\en" => table(
\&        sanitize => 1,
\&        rows => [
\&            [$field,      \*(Aqcol2\*(Aq     ],
\&            [\*(Aqrow2 col1\*(Aq, \*(Aqrow2 col2\*(Aq]
\&        ]
\&    );
.Ve
.Sp
Prints:
.Sp
.Vb 7
\&    +\-\-\-\-ubles, respectively.  If present, they contain a
space\-separated list of one or more of the above function
names in the order they should be tried.
.Sp
d_Gconvert may be set to override Configure with a platform\-
specific function.  If this function expects a double, a
different value may need to be set by the \fIuselongdouble.cbu\fR
call\-back unit so that long doubles can be formatted without
loss of precision.
.ie n .IP """d_PRIEUldbl""" 4
.el .IP \f(CWd_PRIEUldbl\fR 4
.IX Item "d_PRIEUldbl"
From \fIlongdblfio.U\fR:
.Sp
This v require. For instance, if you want to use \f(CWdone_testing()\fR but want your test script to run on Perl 5.10.0, you will need to explicitly require Test::More > 0.88.
.PP
Key feature milestones include:
.IP subtests 4
.IX Item "subtests"
Subtests were released in Test::More 0.94, which came with Perl 5.12.0. Subtests did not implicitly call \f(CWdone_testing()\fR until 0.96; the first Perl with that fix was Perl 5.14.0 with 0.98.
.ie n .IP done_testing() 4
.el .IP \f(CWdone_testing()\fR 4
.IX Item "done_testing()"
This was relea and installed solely
from consulting its
metadata file.  The main reason to set this to a true value if that
your module performs some dynamic configuration (asking questions,
sensing the environment, etc.) as part of its build/install process.
.PP
Currently Module::Build doesn\*(Aqt actually do anything with this flag
\&\- it\*(Aqs probably going to be up to higher\-level tools like CPAN
to do something useful with it.  It can potentially bring lots of
security, packaging, and convenience improvements.
.PP
If this field is omittecept the range operator \f(CW\*(C`..\*(C'\fR
are overloaded.
.PP
So, the following:
.PP
.Vb 2
\&    use bigfloat;
\&    $x = 1234;
.Ve
.PP
creates a Math::BigFloat and stores a reference to in \f(CW$x\fR. This happens
transparently and behind your back, so to speak.
.PP
You can see this with the following:
.PP
.Vb 1
\&    perl \-Mbigfloat \-le \*(Aqprint ref(1234)\*(Aq
.Ve
.PP
Since numbers are actually objects, you can call all the usual methods from
Math::BigFloat on them. This even works to some extent on expressions:
.PP
.Vb 4
ction "make_iterator"
.PP
.Vb 1
\&  my $iterator = $class\->make_iterator( $source );
.Ve
.PP
Constructs & returns a new TAP::Parser::Iterator::Process for the source.
Assumes \f(CW\*(C`$source\->raw\*(C'\fR contains a reference to the perl script.  \f(CW\*(C`croak\*(C'\fRs
if the file could not be found.
.PP
The command to run is built as follows:
.PP
.Vb 1
\&  $perl @switches $perl_script @test_args
.Ve
.PP
The perl command to use is determined by "get_perl".  The command generated
is guaranteed to preserve:
.PP
.Vb 3
\&  PERL5LIl regularly check for
pending IPC events and will process them.
.PP
This driver is further optimized using a small chunk of SHM. Any time a new
event is sent via IPC the shm is updated to have a new value. Hubs will not
bother checking for new IPC events unless the shm value has changed since their
last poll. A result of this is that the IPC system is surprisingly fast, and
does not waste time polling the hard drive when there are no pending events.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Test2::Manual \- Primary index of the manual.
at ignores VMS ACLs"
VMS systems have a permissions structure that cannot be completely
represented in a stat buffer, and unlike on other systems the builtin
filetest operators respect this. The \f(CW\*(C`File::stat\*(C'\fR overloads, however,
do not, since the information required is not available.
.SH NOTE
.IX Header "NOTE"
While this class is currently implemented using the Class::Struct
module to build a struct\-like class, you shouldn\*(Aqt rely upon this.
.SH AUTHOR
.IX Header "AUTHOR"
Tom Christiansen
.\" -*- mode: troff; codle, this method
returns the current autoflush setting for the underlying filehandle. If
\&\f(CW\*(C`EXPR\*(C'\fR is present, and is non\-zero, it will enable flushing after every
write/print operation.
.PP
If \f(CW$z\fR is associated with a buffer, this method has no effect and always
returns \f(CW\*(C`undef\*(C'\fR.
.PP
\&\fBNote\fR that the special variable \f(CW$|\fR \fBcannot\fR be used to set or
retrieve the autoflush setting.
.SS input_line_number
.IX Subsection "input_line_number"
.Vb 2
\&    $z\->input_line_number()
\&    he \f(CW$output\fR being
closed once either the \f(CW\*(C`close\*(C'\fR method is called or the \f(CW\*(C`IO::Compress::Gzip\*(C'\fR
object is destroyed.
.Sp
This parameter defaults to 0.
.ie n .IP """Append => 0|1""" 5
.el .IP "\f(CWAppend => 0|1\fR" 5
.IX Item "Append => 0|1"
Opens \f(CW$output\fR in append mode.
.Sp
The behaviour of this option is dependent on the type of \f(CW$output\fR.
.RS 5
.IP \(bu 5
A Buffer
.Sp
If \f(CW$output\fR is a buffer and \f(CW\*(C`Append\*(C'\fR is enabled, all compressed data
will be append to thalgic for \f(CW\*(C`catgets\*(C'\fR),
but I have better suggestions in the
section "Entries in Each Lexicon", above.  Assuming you opt for
meaningful keys that double as values (like "Minimum ([_1]) is
larger than maximum ([_2])!\en"), you\*(Aqll have to settle on what
language those should be in.  For the sake of argument, I\*(Aqll
call this English, specifically American English, "en\-US".
.IP \(bu 4
Create a class for your localization project.  This is
the name of the class that you\*(Aqll use in the idiom:
.Sp
.Vb 2
\&  use Pr\->print("GET / HTTP/1.0$CRLF");
.Ve
.PP
The entire \fBgetaddrinfo()\fR subsystem can be exported using the tag \f(CW\*(C`:addrinfo\*(C'\fR;
this exports the \fBgetaddrinfo()\fR and \fBgetnameinfo()\fR functions, and all the
\&\f(CW\*(C`AI_*\*(C'\fR, \f(CW\*(C`NI_*\*(C'\fR, \f(CW\*(C`NIx_*\*(C'\fR and \f(CW\*(C`EAI_*\*(C'\fR constants.
.SH CONSTANTS
.IX Header "CONSTANTS"
In each of the following groups, there may be many more constants provided
than just the ones given as examples in the section heading. If the heading
ends \f(CW\mpiler to enable the Raku\-inspired
\&\f(CW\*(C`say\*(C'\fR function.
.PP
See "say" in perlfunc for details.
.PP
This feature is available starting with Perl 5.10.
.SS "The \*(Aqsignatures\*(Aq feature"
.IX Subsection "The 'signatures' feature"
This enables syntax for declaring subroutine arguments as lexical variables.
For example, for this subroutine:
.PP
.Vb 3
\&    sub foo ($left, $right) {
\&        return $left + $right;
\&    }
.Ve
.PP
Calling \f(CW\*(C`foo(3, 7)\*(C'\fR will assign \f(CW3\fR into \f(CW$left\fR and \f(CW7\fR framework for parsing Pod
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 4
\&    # using an existing formatter
\&    use Pod::Simple::XHTML;
\&    my $parser = Pod::Simple::XHTML\->new;
\&    $parser\->parse_file(\*(Aqpath/to/file.pod\*(Aq);
\&
\&    # creating a new formatter
\&    package Pod::Simple::SomeFormatter;
\&    use parent qw(Pod::Simple);
\&    sub _handle_element_start {
\&        my ($parser, $element_name, $attr_hash_r) = @_;
\&        ...
\&    }
\&    ...
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
Pod::Simple is a Perlies
to the \f(CW\*(C`refaddr\*(C'\fR the same as other handles and so can be compared to other
handles with \f(CW\*(C`==\*(C'\fR.
.PP
.Vb 2
\&    $fh eq $filename       # as a string
\&    $fh != \e*STDOUT        # as a number
.Ve
.PP
Available since 0.14.
.IP \fBnew\fR 4
.IX Item "new"
Create a temporary file object.
.Sp
.Vb 1
\&  my $tmp = File::Temp\->new();
.Ve
.Sp
by default the object is constructed as if \f(CW\*(C`tempfile\*(C'\fR
was called without options, but with the additional behaviour
that the temporary file is remove"
.PD 0
.ie n .IP "$bool = $parent\->\fBbuffered()\fR" 4
.el .IP "\f(CW$bool\fR = \f(CW$parent\fR\->\fBbuffered()\fR" 4
.IX Item "$bool = $parent->buffered()"
.PD
True if the subtest is buffered (meaning the formatter has probably not seen
them yet).
.SH SOURCE
.IX Header "SOURCE"
The source code repository for Test2 can be found at
<https://github.com/Test\-More/test\-more/>.
.SH MAINTAINERS
.IX Header "MAINTAINERS"
.IP "Chad Granum <exodist@cpan.org>" 4
.IX Item "Chad Granum <exodist@cpan.org>"
.SH AUTHORS
.IX Header "AUTHORS"
.Iy TAP::Object
\&    sub _initialize {
\&        my ( $self, @args) = @_;
\&        # initialize your object
\&        return $self;
\&    }
\&
\&    # ... later ...
\&    my $obj = TAP::Whatever\->new(@args);
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
\&\f(CW\*(C`TAP::Object\*(C'\fR provides a default constructor and exception model for all
\&\f(CW\*(C`TAP::*\*(C'\fR classes.  Exceptions are raised using Carp.
.SH METHODS
.IX Header "METHODS"
.SS "Class Methods"
.IX Subsection "Class Methods"
\fR\f(CI\*(C`new\*(C'\fR\fI\fR
.IX Su       tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Required to disable full justification in groff 1.23.0.
.if n .ds AD l
.\" ========================================================================
.\"
.IX Title "CORE 3"
.TH CORE 3 2026-06-22 "perl v5.44.0" "Perl Programmers Reference Guide"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
ff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.48)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape singry
  if ($options{"mkdir"}) {
    # There is no filename at the end
    ($volume, $directories, $file) = File::Spec->splitpath( $path, 1);

    # The parent is then $directories without the last directory
    # Split the directory and put it back together again
    my @dirs = File::Spec->splitdir($directories);

    # If @dirs only has one entry (i.e. the directory template) that means
    # we are in the current directory
    if ($#dirs == 0) {
      $parent = File::Spec->curdir;
    } else {

      if ($^O eq 'VMS') {     # need >. It is
also possible to specify that only integer or floating point numbers
are acceptable values. The keys are always taken to be strings.

=head2 User-defined subroutines to handle options

Ultimate control over what should be done when (actually: each time)
an option is encountered on the command line can be achieved by
designating a reference to a subroutine (or an anonymous subroutine)
as the option destination. When GetOptions() encounters the option, it
will call the subroutine with two or three arguments. The first
argume": ",
				  "$userlinkage->{$orig}\n")
			if $debug;
		    unshift (@optionlist, $userlinkage->{$orig});
		}
		else {
		    # Do nothing. Being undefined will be handled later.
		    next;
		}
	    }
	}

	# Copy the linkage. If omitted, link to global variable.
	if ( @optionlist > 0 && ref($optionlist[0]) ) {
	    print STDERR ("=> link \"$orig\" to $optionlist[0]\n")
		if $debug;
	    my $rl = ref($linkage{$orig} = shift (@optionlist));

	    if ( $rl eq "ARRAY" ) {
		$opctl{$name}[CTL_DEST] = CTL_DEST_ARRAY;
	    }
	    elsif ( $ave an older version of Perl, the C<$^W> variable (documented
in L<perlvar>) controls runtime warnings for a block:

    {
        local $^W = 0;        # temporarily turn off warnings
        $x = $y + $z;         # I know these might be undef
    }

Note that like all the punctuation variables, you cannot currently
use my() on C<$^W>, only local().

=head2 What's an extension?

An extension is a way of calling compiled C code from Perl. Reading
L<perlxstut> is a good place to learn more about extensions.

=head2 Why do Perl operasE<sol>|perldiag/"Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by <-- HERE in mE<sol>%sE<sol>">

(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)

Stricter rules help to find typos and other errors.  Perhaps you didn't
even intend a range here, if the C<"-"> was meant to be some other
character, or should have been escaped (like C<"\-">).  If you did
intend a range, the one that was used is not portable between ASCII and
EBCDIC platforms, and doesn't have an obvious )> or a related function with a
format string that specifies explicit indexes for some of the elements, and
using a C-style variable-argument list (a C<va_list>).  This is not currently
supported.  XS authors wanting to do this must instead construct a C array
of C<SV*> scalars containing the arguments.

=item Can only compress unsigned integers in pack

(F) An argument to pack("w",...) was not an integer.  The BER compressed
integer format can only be used with positive integers, and you attempted
to compress something else.  See flags)
 void  Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len,
                               U32 flags)

=back

=back

=for hackers
Declared at embed.fnc, line 1727; documented at hv.c, line 2778

=over 4

=item C<hv_ename_delete>
X<hv_ename_delete>

Removes a name from a stash's internal list of effective names.  If this is
the name returned by C<HvENAME>, then another name in the list will take
its place (C<HvENAME> will use it).

This is called when a stash is deleted from the symbol table.

=over 3

 void       hv_enlable via the C<:mode> tag.

=item File::Compare

A compare_text() function has been added, which allows custom
comparison functions.  See L<File::Compare>.

=item File::Find

File::Find now works correctly when the wanted() function is either
autoloaded or is a symbolic reference.

A bug that caused File::Find to lose track of the working directory
when pruning top-level directories has been fixed.

File::Find now also supports several other options to control its
behavior.  It can follow symbolic links if the C<follow> option is
do-hash is not legal.  Index values must be at 1 or greater.
See L<perlref>.

=item Bareword "%s" refers to nonexistent package

(W) You used a qualified bareword of the form C<Foo::>, but
the compiler saw no other uses of that namespace before that point.
Perhaps you need to predeclare a package?

=item Can't call method "%s" on an undefined value

(F) You used the syntax of a method call, but the slot filled by the
object reference or package name contains an undefined value.
Something like this will reproduce the error:

    $BA actions.

=item *

Added support for C<${^HOOK}{require__after}> which can be used to
track what modules have been required after the fact.

=item *

Regular expression opcodes (regops) now use a standardized structure
layout that uses unions to expose data in different format. This means
it should be much easier to extend or modify regops to use more memory.
This has been used to make a number of regops track how many parens
they contain.

=back

=head1 Selected Bug Fixes

=over 4

=item *

Avoid recursion and stack overflow parsThis only happens in cases where it would have been an error to actually
execute the code anyway; the error simply happens at an earlier time.

=head2 Optimistic Eval in Patterns

The use of C<(?{ ... })> and C<(??{ ... })> in a pattern disables various
optimisations globally in that pattern. This may or may not be desired by the
programmer. This release adds the C<(*{ ... })>
equivalent. The only difference is that it does not and will never disable
any optimisations in the regex engine. This may make it more unstable in the
senseropriate to send to a publicly archived mailing list, then please send
it to perl5-security-report@perl.org. This points to a closed subscription
unarchived mailing list, which includes
all the core committers, who will be able
to help assess the impact of issues, figure out a resolution, and help
co-ordinate the release of patches to mitigate or fix the problem across all
platforms on which Perl is supported. Please only use this address for
security issues in the Perl core, not for modules independently
distributed on CPAN.

=heahell's interference.  With system(), it's
straightforward, but you can't use a pipe open or backticks safely.
That's because there's no way to stop the shell from getting its hands on
your arguments.   Instead, use lower-level control to call exec() directly.

Here's a safe backtick or pipe open for read:

    my $pid = open(my $kid_to_read, "-|");
    defined($pid)            || die "can't fork: $!";

    if ($pid) {             # parent
        while (<$kid_to_read>) {
                            # do something interesting
      GIN block is executed as soon
as it is seen (during compilation), at which point the corresponding
__DATA__ (or __END__) token has not yet been seen.

=head3 Barewords
X<bareword>

A word that has no other interpretation in the grammar will
be treated as if it were a quoted string.  These are known as
"barewords".  As with filehandles and labels, a bareword that consists
entirely of lowercase letters risks conflict with future reserved
words, and if you use the C<use warnings> pragma or the B<-w> switch,
Perl will warn you about an      } elsif ($state == 2) {
                substr($new, $oldlen) = uc(substr($new, $oldlen));
            }
        }
        return $new;
    }

=head2 How can I make C<\w> match national character sets?
X<\w>

Put C<use locale;> in your script. The \w character class is taken
from the current locale.

See L<perllocale> for details.

=head2 How can I match a locale-smart version of C</[a-zA-Z]/>?
X<alpha>

You can use the POSIX character class syntax C</[[:alpha:]]/>
documented in L<perlre>.

No matter which locale you are in, The Shell module now has an OO interface.

=item *

In Sys::Syslog there is now a failover mechanism that will go
through alternative connection mechanisms until the message
is successfully logged.

=item *

The Test module has been significantly enhanced.

=item *

Time::Local::timelocal() does not handle fractional seconds anymore.
The rationale is that neither does localtime(), and timelocal() and
localtime() are supposed to be inverses of each other.

=item *

The vars pragma now supports declaring fully qualified variables.
(Ss that became Perl 5.20.3:

Alex Vandiver, Andy Dougherty, Aristotle Pagaltzis, Chris 'BinGOs' Williams,
Craig A. Berry, Dagfinn Ilmari MannsÃ¥ker, Daniel Dragan, David Mitchell,
Father Chrysostomos, H.Merijn Brand, James E Keenan, James McCoy, Jarkko
Hietaniemi, Karen Etheridge, Karl Williamson, kmx, Lajos Veres, Lukas Mai,
Matthew Horsfall, Petr PÃ­saÅ™, Randy Stauner, Ricardo Signes, Sawyer X, Steve
Hay, Tony Cook, Yves Orton.

The list above is almost certainly incomplete as it is automatically generated
from version control histandard library:

    use File::Find;
    my @files;

    find(
        {
        wanted => sub {
            push @files, $File::Find::fullname
            if -f $File::Find::fullname && /\.pm$/
        },
        follow => 1,
        follow_skip => 2,
        },
        @INC
    );

    print join "\n", @files;

If you simply need to check quickly to see if a module is
available, you can check for its documentation. If you can
read the documentation the module is most likely installed.
If you cannot read the documentation, the mher DOS-like systems.

The list becomes the default for I<all> Perl's IO. Consequently only built-in
layers can appear in this list, as external layers (such as C<:encoding()>) need
IO in order to load them!  See L<"open pragma"|open> for how to add external
encodings as defaults.

Layers it makes sense to include in the PERLIO environment
variable are briefly summarized below. For more details see L<PerlIO>.

=over 8

=item :crlf
X<:crlf>

A layer which does CRLF to C<"\n"> translation distinguishing "text" and
"binary" files in t://search.cpan.org/dist/ExtUtils-MakeMaker/Changes>

=back

=item *

C<File::Basename> upgraded to version 2.74, with changes contributed by Michael Schwern.

=over

=item *

Documentation clarified and errors corrected.

=item *

C<basename> now strips trailing path separators before processing the name.

=item *

C<basename> now returns C</> for parameter C</>, to make C<basename>
consistent with the shell utility of the same name.

=item *

The suffix is no longer stripped if it is identical to the remaining characters
in the nang the
multiple layer direct variable access, and it's usually horrible.  It is,
however, minusculely faster.  The question remains whether the minute gain is
actually worth the eyestrain, or the loss of maintainability.

=head2  Search and replace or tr

If we have a string which needs to be modified, while a regex will almost
always be much more flexible, C<tr>, an oft underused tool, can still be
useful.  One scenario might be to replace all vowels with another character.
The regex solution might look like this:

 $str =~ s/[aeie error handling.

=item *

L<Term::ReadLine> has been upgraded to 1.10.  This fixes the
use of the B<cpan> and B<cpanp> shells on Windows in the event that the current
drive happens to contain a F<\dev\tty> file.

=item *

L<Test::Harness> has been upgraded to 3.26.

Fix glob semantics on Win32 [rt.cpan.org #49732].

Don't use C<Win32::GetShortPathName> when calling perl [rt.cpan.org #47890].

Ignore -T when reading shebang [rt.cpan.org #64404].

Handle the case where we don't know the wait status of the test more
gracefully.

Mak this by making the first of the three digits always a
zero, but that makes \077 the largest code point specifiable.

In some contexts, a backslash followed by two or even one octal digits may be
interpreted as an octal escape, sometimes with a warning, and because of some
bugs, sometimes with surprising results.  Also, if you are creating a regex
out of smaller snippets concatenated together, and you use fewer than three
digits, the beginning of one snippet may be interpreted as adding digits to the
ending of the snippet before it>, like the period, matches any character but C<"\n">, but it does so
regardless of whether the modifier C</s> is in effect.

=back

The C</a> modifier, available starting in Perl 5.14,  is used to
restrict the matches of C<\d>, C<\s>, and C<\w> to just those in the ASCII range.
It is useful to keep your program from being needlessly exposed to full
Unicode (and its accompanying security considerations) when all you want
is to process English-like text.  (The "a" may be doubled, C</aa>, to
provide even more restrictions, preventingges
listed in this document.  If you find any we have missed, send email
to L<perlbug@perl.org|mailto:perlbug@perl.org>.

Additionally, the following selected changes have been made:

=head3 L<perlapi>

=over 4

=item *

The API functions C<perl_parse()>, C<perl_run()>, and C<perl_destruct()>
are now documented comprehensively, where previously the only
documentation was a reference to the L<perlembed> tutorial.

=item *

The documentation of C<newGIVENOP()> has been belatedly updated to
account for the removal of lexical C<$_>.

=y Unicode.  It turns out that it was because
these were short input strings, and the failures had to do with longer
inputs.

=item *

Certain syntax errors in
L<perlrecharclass/Extended Bracketed Character Classes> caused panics
instead of the proper error message.  This has now been fixed. [perl
#126481]

=item *

Perl 5.20 added a message when a quantifier in a regular
expression was useless, but then caused the parser to skip it;
this caused the surplus quantifier to be silently ignored, instead
of throwing an error. This is nowumbers. Providing an invalid version will result in a fatal
error. The version argument in C<use NAME VERSION> is first parsed as a
numeric literal or v-string and then passed to C<UNIVERSAL::VERSION>
(and must then pass the "lax" format test).

These formats are documented fully in the L<version> module. To a first
approximation, a "strict" version number is a positive decimal number
(integer or decimal-fraction) without exponentiation or else a
dotted-decimal v-string with a leading 'v' character and at least three
components. A perators are:

 &    intersection
 +    union
 |    another name for '+', hence means union
 -    subtraction (the result matches the set consisting of those
      code points matched by the first operand, excluding any that
      are also matched by the second operand)
 ^    symmetric difference (the union minus the intersection).  This
      is like an exclusive or, in that the result is the set of code
      points that are matched by either, but not both, of the
      operands.

There is one unary operator:

 !    complement

A> by using an explicit, empty
import list. Both of these still happen at compile-time:

    use MODULE ();

    BEGIN {
        require MODULE;
    }

Since C<use> will also call the C<import> method, the actual value
for C<MODULE> must be a bareword. That is, C<use> cannot load files
by name, although C<require> can:

    require "$ENV{HOME}/lib/Foo.pm"; # no @INC searching!

See the entry for C<use> in L<perlfunc> for more details.

=head2 How do I keep my own module/library directory?

When you build modules, tell Perl where to method on a C<Child> object and that method is not defined
in the C<Child> class, Perl will look for that method in the C<Parent>
class and then, if necessary, in the C<Grandparent> class.

If Perl cannot find the method in any of these classes, it will die
with an error message.

When a class has multiple parents, the method lookup order becomes more
complicated.

By default, Perl does a depth-first left-to-right search for a method.
That means it starts with the first parent in the C<@ISA> array, and
then searches all of its paretem *

Unicode::Normalize upgraded to version 0.30

=back

=head1 Utility Changes

=head2 Perl's debugger

The debugger can now emulate stepping backwards, by restarting and rerunning
all bar the last command from a saved command history.

=head2 h2ph

F<h2ph> is now able to understand a very limited set of C inline functions
-- basically, the inline functions that look like CPP macros. This has
been introduced to deal with some of the headers of the newest versions of
the glibc. The standard warning still applies; to quote F<h2ph>cess to the named capture
groups in the last successful match in the currently active dynamic
scope. (See L</Scoping Rules of Regex Variables>). To each capture group
name found in the regular expression, it associates a reference to an
array containing the list of values captured by all buffers with that
name (should there be several of them), in the order where they appear.

Here's an example:

    if ('1234' =~ /(?<A>1)(?<B>2)(?<A>3)(?<B>4)/) {
        foreach my $bufname (sort keys %-) {
            my $ary = $-{$bufname};
    uments to any B<-I> command-line
switches, followed by the default Perl library, probably
F</usr/local/lib/perl>.
Prior to Perl 5.26, C<.> -which represents the current directory, was included
in C<@INC>; it has been removed. This change in behavior is documented
in L<C<PERL_USE_UNSAFE_INC>|perlrun/PERL_USE_UNSAFE_INC> and it is
not recommended that C<.> be re-added to C<@INC>.
If you need to modify C<@INC> at runtime, you should use the C<use lib> pragma
to get the machine-dependent library properly loaded as well:

    use lib '/ld ignore the internal UTF8 flag and use the bytes of
the underlying representation to look up the symbol.  That meant that
C<*{"\x{100}"}> and C<*{"\xc4\x80"}> would return the same thing.  All
these parts of Perl have been fixed to account for Unicode:

=over

=item *

Method names (including those passed to C<use overload>)

=item *

Typeglob names (including names of variables, subroutines, and filehandles)

=item *

Package names

=item *

C<goto>

=item *

Symbolic dereferencing

=item *

Second argument to C<bless()> and C<t even if the
object in the left operand has smartmatch overloading, this will be
ignored.  A left operand that is a non-overloaded object falls back on a
string or numeric comparison of whatever the C<ref> operator returns.  That
means that

    $object ~~ X

does I<not> invoke the overload method with C<I<X>> as an argument.
Instead the above table is consulted as normal, and based on the type of
C<I<X>>, overloading may or may not be invoked.  For simple strings or
numbers, "in" becomes equivalent to this:

    $object ~~ $numberribute to the reference count of that
SV. The code typically generated by XS takes advantage of this. For
example when ready to return a single value, the XSUB just stores a new SV
pointer at the base of the current stack frame, overwriting the old value,
then resets the argument stack pointer to the base of the frame plus one,
and returns. All the original values on the stack are discarded, without
adjusting any reference counts.

This can be a problem if the XSUB is returning a new SV. Since this SV
isn't embedded anywhere apart ting about.

=head2 Running Perl programs

To run a Perl program from the Unix command line:

 perl progname.pl

Alternatively, put this as the first line of your script:

 #!/usr/bin/env perl

... and run the script as F</path/to/script.pl>.  Of course, it'll need
to be executable first, so C<chmod 755 script.pl> (under Unix).

(This start line assumes you have the B<env> program.  You can also put
directly the path to your perl executable, like in C<#!/usr/bin/perl>).

For more information, including instructions for other platfo from CPAN may build or work properly
in the Windows environment.  See L</"Building Extensions">.

Most C<socket()> related calls are supported, but they may not
behave as on Unix platforms.  See L<perlport> for the full list.

Signal handling may not behave as on Unix platforms (where it
doesn't exactly "behave", either :).  For instance, calling C<die()>
or C<exit()> from signal handlers will cause an exception, since most
implementations of C<signal()> on Windows are severely crippled.
Thus, signals may work only for simple thinen the 5.12.1 release and
the 5.12.2 release.

If you are upgrading from an earlier major version, such as 5.10.1,
first read L<perl5120delta>, which describes differences between 5.10.0
and 5.12.0, as well as L<perl5121delta>, which describes earlier changes
in the 5.12 stable release series.

=head1 Incompatible Changes

There are no changes intentionally incompatible with 5.12.1. If any exist, they
are bugs and reports are welcome.

=head1 Core Enhancements

Other than the bug fixes listed below, there should be no user-visible
emoved some time
ago; it has now been restored.
L<[GH #15302]|https://github.com/Perl/perl5/issues/15302>

=item *

The build process no longer emits an extra blank line before building each
"simple" extension (those with only F<*.pm> and F<*.pod> files).

=back

=head1 Testing

Tests were added and changed to reflect the other additions and changes
in this release.  Furthermore, these substantive changes were made:

=over 4

=item *

A new test script, F<comp/parser_run.t>, has been added that is like
F<comp/parser.t> but with F<tg/perlbug/ .  There may also be
information at http://www.perl.org/ , the Perl Home Page.

If you believe you have an unreported bug, please run the B<perlbug>
program included with your release.  Be sure to trim your bug down
to a tiny but sufficient test case.  Your bug report, along with the
output of C<perl -V>, will be sent off to perlbug@perl.org to be
analysed by the Perl porting team.

If the bug you are reporting has security implications, which make it
inappropriate to send to a publicly archived mailing list, then please at
the end of compilation rather than at the end of execution.  They cannot
be called directly.

=head2 POSIX character class syntax [: :] supported

For example to match alphabetic characters use /[[:alpha:]]/.
See L<perlre> for details.

=head2 Better pseudo-random number generator

In 5.005_0x and earlier, perl's rand() function used the C library
rand(3) function.  As of 5.005_52, Configure tests for drand48(),
random(), and rand() (in that order) and picks the first one it finds.

These changes should result in better random /issues/2793>

=back

=head1 Acknowledgements

Perl 5.24.4 represents approximately 7 months of development since Perl 5.24.3
and contains approximately 2,400 lines of changes across 49 files from 12
authors.

Excluding auto-generated files, documentation and release tools, there were
approximately 1,300 lines of changes to 12 .pm, .t, .c and .h files.

Perl continues to flourish into its third decade thanks to a vibrant community
of users and developers.  The following people are known to have contributed
the improvements that becrl 5,
you can do so by running the C<perlthanks> program:

    perlthanks

This will send an email to the Perl 5 Porters list with your show of thanks.

=head1 SEE ALSO

The F<Changes> file for an explanation of how to view exhaustive details on
what changed.

The F<INSTALL> file for how to build Perl.

The F<README> file for general stuff.

The F<Artistic> and F<Copying> files for copyright information.

=cut
=encoding utf8

=head1 NAME

perl5420delta - what is new for perl v5.42.0

=head1 DESCRIPTION

This document describes diffd be using instead.  See L</libc functions to avoid> above.
This includes using Perl IO L<perlapio>.

The second thing to know is that Perl is documented to not pay attention
to the current locale except for code executed within the scope of a
S<C<use locale>> statement.  If you violate that, you may be creating
bugs, depending on the application.

The next thing to know is that many of these functions depend only on
the locale in regards to numeric values.  Your code is likely to have
been written expecting that the decimal point ng the grouping
metacharacters, the parentheses C<"("> and C<")">.

 $foo =~ m/th(is|at) thing/

is TRUE if and only if C<$foo> contains either the sequence S<C<"this
thing">> or the sequence S<C<"that thing">>.  The portions of the string
that match the portions of the pattern enclosed in parentheses are
normally made available separately for use later in the pattern,
substitution, or program.  This is called "capturing", and it can get
complicated.  See L</Capture groups>.

The first alternative includes everything from the last trol history.  In particular, it does not include the names of
the (very much appreciated) contributors who reported issues to the Perl bug
tracker.

Many of the changes included in this version originated in the CPAN modules
included in Perl's core.  We're grateful to the entire CPAN community for
helping Perl to flourish.

For a more complete list of all of Perl's historical contributors, please see
the F<AUTHORS> file in the Perl source distribution.

=head1 Reporting Bugs

If you find what you think is a bug, you might check th your system. There are also several utilities
which are used by the Perl distribution itself as part of the install
process. This document exists to list all of these utilities, explain
what they are for and provide pointers to each module's documentation,
if appropriate.

=head1 LIST OF UTILITIES

=head2 Documentation

=over 3

=item L<perldoc>

The main interface to Perl's documentation is F<perldoc>, although
if you're reading this, it's more than likely that you've already found
it. F<perldoc> will extract and format the docummpilation. That
deletion is now applied in some situations that weren't previously handled.

=item *

Perl now does less disk I/O when dealing with Unicode properties that cover
up to three ranges of consecutive code points.

=back

=head1 Modules and Pragmata

=head2 New Modules and Pragmata

=over 4

=item *

L<experimental> 0.007 has been added to the Perl core.

=item *

L<IO::Socket::IP> 0.29 has been added to the Perl core.

=back

=head2 Updated Modules and Pragmata

=over 4

=item *

L<Archive::Tar> has been upgraded from vrelative path. Otherwise, it's an
absolute path, unless the path doesn't contain any colons, i.e. it's a name
like "a". In this particular case, the path is considered to be relative
(i.e. it is considered to be a filename). Use ":" in the appropriate place
in the path if you want to distinguish unambiguously. As a special case,
the filename '' is always considered to be absolute. Note that with version
1.2 of File::Spec::Mac, this does no longer consult the local filesystem.

E.g.

    File::Spec->file_name_is_absolute("a");      want to do this kind of
processing, you probably want C<Cwd>'s C<realpath()> function to
actually traverse the filesystem cleaning up paths like this.

=item catdir
X<catdir>

Concatenate two or more directory names to form a complete path ending
with a directory. But remove the trailing slash from the resulting
string, because it doesn't look good, isn't necessary and confuses
OS/2. Of course, if this is the root directory, don't cut off the
trailing slash :-)

    $path = File::Spec->catdir( @directories );

=item catfile
X<catfiÿÿH�5ÿS  è©�ÿÿH�=¡M  1Àè+�ÿÿff.„     AUATUSHƒìH‹ÏË  H‹-0Ì  L‹-9Ì  H‹H�HüH‰
H‹U Hc H�ÂH‰ÃI‹E H)ÈHÁøƒø…Y  ƒÃHcÛH‹ÚL�$Ý    ö@„I  H‹x‹G%   =   „²   ¾   è˜�ÿÿH‰ÇH…ÿtxöG …ö   H‹çË  H‰øH)ÐHƒøH†Ï   ‹GöÄÿtVöÄ…~   öÄ…¥   öÄtH‹Gö@t9H‹ H‹ ö@t-1öH‰T$èþ�ÿÿH‹T$H�J0„ÀHDÑëD  H‹yË  HƒÂ0H‹E H‰ØLe M‰e HƒÄ[]A\A]Ãf�H‹H‹x éOÿÿÿ@ H‹H…ÀtÇH‹@HƒøwÁH…Àt¸H‹G€80•ÁH�B0„ÉHDÐë¦ H‹Hƒx  •Áëä H9×”ÀélÿÿÿD  H‰|$èv ÿÿH‹|$éöþÿÿH�56R  èà›ÿÿH�=ØK  1Àèb›ÿÿf�AUATUSHƒìH‹Ê  H‹€Ê  H‹H‹H�HüH‰
H‹\Ê  ‹ H‹
H    &       6       F       V       f       v       †       –       ¦       ¶       Æ       Ö       æ       ö       !      !      &!      6!      F!      V!      f!      v!      †!      –!      ¦!      ¶!      Æ!      Ö!      æ!      ö!      "      "      &"      6"      F"      V"      f"      v"      †"      –"      ¦"      ¶"      Æ"      Ö"      æ"      ö"      #      #      &#      6#      F#      V#       q      GCC: (GNU) 16.2.0                                   ñÿ                     èS                  	 €#   Jw€ ?;*3$"       D    Îÿÿ           4   \   ˆÏÿÿ'   A†AƒD0É8V@S8A0_
AAA (   ”   €Ðÿÿ«   A†CƒJ@²
AAF    À   ÒÿÿT    lT 4   Ø   LÒÿÿ‡    BŒD†D ƒW(M0_(A d
ABA@     ¤Òÿÿ   BŽB�B ŒA(†A0ƒD@Ã
0A(A BBBI 8   T  pÓÿÿ]   B�GŒA †A(ƒD@"
(A ABBA(   �  ”Ôÿÿ±    A†AƒD0r
AAF $   ¼  (Õÿÿ¨    CƒLH ]A|
G   ä  °Õÿÿß    Oƒ�
D   L     pÖÿÿ»   B�BŽB �B(ŒA0†A8ƒGð!
8A0A(B BBypes_PVX Perl_grok_atoUV __stack_chk_fail Perl_newSVpvn_flags PL_compiling Perl_sv_catpvf PL_curstash Perl_ckwarn Perl_ck_warner PL_regnode_info Perl_sv_free2 PL_valid_types_IVX Perl_sv_2iv_flags Perl_sv_2uv_flags Perl_invlist_search_ PL_bitcount Perl_sv_grow PL_curstackinfo PL_curstack Perl_new_stackinfo_flags Perl_deb PL_strict_utf8_dfa_tab Perl_utf8_to_uv_msgs_helper_ PL_tainting PL_tainted Perl_sv_magic Perl_mg_size Perl_safesysmalloc Perl_save_destructor_x PL_WARN_ALL PL_WARN_NONE Perl_av_shift Perl_av_undef Perl_av_clear Perlà   H…ÿ„J  ‹t$0è�õÿÿƒøÿt*H‹»à   H‹T$0H…ÿ„W  L‰æèÏôÿÿH9D$0•À¶À÷ØH‹T$8dH+%(   …³  HƒÄ@[]A\A]A^Ã�H‹D$(‰D$ ‰Ç‹CX…À…R  H‹ƒà   H…À„º  H�t$ º   H‰ÇèhôÿÿHƒø„,ÿÿÿ¸ÿÿÿÿë•€    H‹“°   H;“¸   ƒ<  H�BH‰ƒ°   Æ é¡þÿÿf„     H‹‹°   H;‹¸   ƒl  H�AH‰ƒ°   ˆé�þÿÿf.„     L‹«°   I�D H9ƒ¸   ‚§  L‰ïH‰îè\ðÿÿH‹»à   H‹D$(Hƒ°   H…ÿ…¶þÿÿH‹«°   H;«¸   ƒÌ  H�EH‰ƒ°   H‹D$0ˆE é˜þÿÿ@ H‹«°   H�D H9ƒ¸   ‚ç  L‰æH‰ïèìïÿÿH‹D$0Hƒ°   1Àé‡þÿÿf„     H‹E H‹mH‹@H‰D$(A‹E%   =   …VýÿÿI‹E M‹eH‹@H‰D$0éUýÿÿD  èûñÿÿéðüÿÿfD  L‹       ?y             1       Oy             8       cy             	       py      	              zy             ,       ‰y             $       ‘y             
       žy                    ªy             *       ¶y                    Ây                    Îy             &       Úy      	              äy             !       óy                    ÿy                    z                    z                    %z             (       1z                    À„                    à„                     Lz                     ê                       crtstuff.c __EH_FRAME_BEGIN__ deregister_tm_clones __do_global_dtors_aux completed.1 __do_global_dtors_aux_fini_array_entry frame_dummy object.0 __frame_dummy_init_array_entry attributes.c XS_attributes__fetch_attrs XS_attributes__modify_attrs XS_attributes__guess_stash __FRAME_END__ _DYNAMIC __TMC_END__ __dso_handle __GNU_EH_FRAME_HDR _GLOBAL_OFFSET_TABLE_ Perl_croak Perl_sv_2pv_flags Perl_newSVhek_mortal Perl_croak_xs_usage Perl_pop_scope PL_stack_max Perl_newXS_deffile Perl_save_spHüH‰
H‹U Hc H�ÂH‰ÃI‹$H)ÈHÁøƒø…¯   ƒÃHcÛH‹<ÚL�,Ý    ‹G%  €=  €„~   ¾   èäÝÿÿH‰ÇèlÝÿÿA‰ÆèdÙÿÿAƒþÿt#E…öuAH‰Çº
   H‰D$H�5¥–  èâÿÿH‹D$H‹U H‰ÚLm M‰,$HƒÄ[]A\A]A^ÃfD  H‰ÇIcöH‰D$èøÖÿÿH‹D$ëÆ�H‹H‹x éƒÿÿÿH�5m—  èX×ÿÿ„     USHƒì(H‹s dH‹%(   H‰D$H‹¦ H‹H‹H�HüH‰
H‹z ‹ H‹
HcÐH�4ÑH‰ÚH)òHÁúƒú…˜  ƒÀH˜H‹<Á‹G%   =   „?  º   1öèsÖÿÿH‰ÅH‹© €8 „ˆ   H�t$H‰ïèS×ÿÿÝ$ò$è¦ÙÿÿH‰Çè>ÛÿÿH‰H‹< H‹ ¶@"ƒàu H‹Ù H‹‹B(…ÀxHkÀhHB¶@ƒà<t|H‹Õ H‰H‹D$dH+%(   …ï   HƒÄ([]Ã€    H‹á ƒ8�hÿÿÿ¾-  H�more_sv dingbats_encoding strlen PL_sv_count __register_frame_info  .symtab .strtab .shstrtab .gnu.hash .dynsym .dynstr .rela.dyn .rela.plt .init .plt.got .text .fini .rodata .eh_frame_hdr .eh_frame .note.gnu.property .init_array .fini_array .data.rel.ro .dynamic .got.plt .data .bss .comment                                                                      öÿÿo       ELF          >            @       @ã          @ 8 
 @                                 À(     À(                   0      0      0     £      £     8t            ±ª     @t            àè     Pt            Ž³     Xt            àè     ht            î§     pt            àè     €t            )§     ˆt            àè     ˜t            �       t            àè     °t            N¥     ¸t            àè     Èt            Æµ     Ðt            àè     èt            Às      u            ä³     u            àè     u            ­      u            àè     0u            ƒd     8u            àè     Hu            t­     Pu O  h   é€ÿÿÿÿ%¢O  h   épÿÿÿÿ%šO  h   é`ÿÿÿÿ%’O  h	   éPÿÿÿÿ%ŠO  h
   é@ÿÿÿÿ%‚O  h   é0ÿÿÿÿ%zO  h   é ÿÿÿÿ%rO  h   éÿÿÿÿ%jO  h   é ÿÿÿÿ%bO  h   éðþÿÿÿ%ZO  h   éàþÿÿÿ%RO  h   éÐþÿÿÿ%JO  h   éÀþÿÿÿ%BO  h   é°þÿÿÿ%:O  h   é þÿÿÿ%2O  h   é�þÿÿÿ%*O  h   é€þÿÿÿ%"O  h   épþÿÿÿ%O  h   é`þÿÿÿ%O  h   éPþÿÿÿ%
O  h   é@þÿÿÿ%O  h   é0þÿÿÿ%úN  h   é þÿÿÿ%òN  h   éþÿÿÿ%êN  h   é þÿÿÿ%âN  h   éðýÿÿÿ%bM  f�ÿ%jM  f�ÿ%¢M  f�        H�=ÁN  H�ºN  H9øtH‹VM  H…Àt	ÿà€    Ã€    H�=‘N  H�5ŠN  H)þH‰ðHÁî?HÁøHÆHÑþtH‹M  Hsp Perl_gv_stashpv Perl_newSViv PL_sv_root PL_sv_count Perl_sv_bless PL_markstack_ptr PL_markstack_max PL_stack_base PL_stack_max strlen Perl_newSVpvn Perl_sv_2mortal Perl_stack_grow Perl_call_pv Perl_more_sv Perl_markstack_grow Perl_sv_free2 boot_Encode__JP Perl_xs_handshake cp932_encoding euc_jp_encoding jis0201_raw_encoding jis0208_raw_encoding jis0212_raw_encoding MacJapanese_encoding shiftjis_encoding Perl_xs_boot_epilog libc.so  �C            àQ     ˜C            €Q      C            ÀP     ¨C             O     °CA^A_Ã„     H‹H‹@ ë–€    è§ÿÿI‹U I‰Äé'ÿÿÿ€    L‰çèð¨ÿÿë§‹GL�Å öÄuöÄÿL�å H�ä LEÀI‰ùL‰ù1ÀH� H�5$& H�=M  èˆ¥ÿÿH�5ö èÜ¥ÿÿ�ff.„     AWAVAUATUSHƒìH‹ƒ” L‹-´” H‹-½” H‹H�HüH‰
I‹U Hc H�ÂH‰ÃH‹E H)ÈHÁøƒø…Y  H‹²” ƒÃH‹ ö@#„Ú   H‹HH‹�” H‹ L‹$ÈHcÛL�=æ H‹<ÚL�4Ý    ‹GöÄ„×   L‰þèþ©ÿÿI‹U H‹<Ú„À„°   H‹‹G%   =   tk¾   èá¥ÿÿH‹°à   A‹D$‰Â�âÿ�™ƒúH‹ë“ ”Á¶ƒò„Ñt^H…öxY€ÌI‰t$A‰D$I‹E L‰$ØMu L‰u HƒÄ[]A\A]A^A_ÃD  H‹H‹@ ë–€    è[¥ÿÿI‹U I‰Äé'ÿÿÿ€    L‰çè0§ÿÿëª‹GL� öÄuöÄÿL�% H_stack_max Perl_newXS_deffile Perl_more_bodies PL_body_roots __cxa_finalize Perl_sv_newmortal Perl_sv_upgrade Perl_stack_grow Perl_xs_boot_epilog Perl_sv_free2 Perl_newSVpvn_flags Perl_xs_handshake _init Perl_mro_method_changed_in Perl_sv_backoff PL_markstack_ptr Perl_sv_2mortal Perl_newXS __deregister_frame_info _ITM_registerTMCloneTable Perl_sv_setuv_mg Perl_croak_sv Perl_sv_2uv_flags boot_Fcntl Perl_hv_common Perl_newCONSTSUB _ITM_deregisterTMCloneTable Perl_newSVuv Perl_get_hv PL_stack_base PL_tainted PL_stack_sp _fini PL_curco       à_         ?            `                    `                    `                    `                     `                    (`                    0`                    8`         	           @`         
           H`                    P`                    X`                    ``                    h`                    p`                    x`                    €`                    ˆ`                    �`                    ˜`                     `                    ¨`ariable, and you may still find older code which looks here instead.

    $sock = IO::Socket::UNIX->new(...)
        or die "Cannot create socket - $@\n";

=back

=head1 METHODS

=over 4

=item hostpath()

Returns the pathname to the fifo at the local end

=item peerpath()

Returns the pathanme to the fifo at the peer end

=back

=head1 SEE ALSO

L<Socket>, L<IO::Socket>

=head1 AUTHOR

Graham Barr. Currently maintained by the Perl Porters.  Please report all
bugs at L<https://github.com/Perl/perl5/issues>.

=head1 COPYRIGHT

Copyrral interface for simple
use, as well as an object oriented interface that can handle messages
of arbitrary length and which can read files directly.

=head1 FUNCTIONS

The following functions are provided by the C<Digest::MD5> module.
None of these functions are exported by default.

=over 4

=item md5($data,...)

This function will concatenate all arguments, calculate the MD5 digest
of this "message", and return it in binary form.  The returned string
will be 16 bytes long.

The result of md5("a", "b", "c") will be exactly the satime in the way documented
in perlfunc will still return what you expect.

The module actually implements most of an interface described by
Larry Wall on the perl5-porters mailing list here:
L<https://www.nntp.perl.org/group/perl.perl5.porters/2000/01/msg5283.html>


After importing this module, when you use C<localtime> or C<gmtime> in a scalar
context, rather than getting an ordinary scalar string representing the
date and time, you get a C<Time::Piece> object, whose stringification happens
to produce the same effect as the C<loche main
processing for the filter is done.

The big difference between the two types of filter is that the I<method
filter> uses the object passed to the method to store any context data,
whereas the I<closure filter> uses the lexical variables that are
maintained by the closure.

Note that the single parameter passed to the I<method filter>,
C<$self>, is the same reference that was passed to C<filter_add>
blessed into the filter's package. See the example filters later on for
details of using C<$self>.

Here is a list of the commo

));

%EXPORT_TAGS = (
  all => [@EXPORT, @EXPORT_OK],
);

sub AUTOLOAD
{
  my $constname = $AUTOLOAD;
  $constname =~ s/.*:://;
  die "&IPC::SysV::_constant not defined" if $constname eq '_constant';
  my ($error, $val) = _constant($constname);
  if ($error) {
    my (undef, $file, $line) = caller;
    die "$error at $file line $line.\n";
  }
  {
    no strict 'refs';
    *$AUTOLOAD = sub { $val };
  }
  goto &$AUTOLOAD;
}

BOOT_XS: {
  # If I inherit DynaLoader then I inherit AutoLoader and I DON'T WANT TO
  use XSLoader ();

  ile state. Default is a function of the return
value of FILL or READ.

=back

=head1 EXAMPLES

Check the PerlIO::via:: namespace on CPAN for examples of PerlIO layers
implemented in Perl.  To give you an idea how simple the implementation of
a PerlIO layer can look, a simple example is included here.

=head2 Example - a Hexadecimal Handle

Given the following module, PerlIO::via::Hex :

    package PerlIO::via::Hex;

    sub PUSHED
    {
     my ($class,$mode,$fh) = @_;
     # When writing we buffer the data
     my $buf = '';
    nyInflate>, L<IO::Uncompress::AnyUncompress>

L<IO::Compress::FAQ|IO::Compress::FAQ>

L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>

The primary site for the bzip2 program is L<https://sourceware.org/bzip2/>.

See the module L<Compress::Bzip2|Compress::Bzip2>

=head1 AUTHOR

This module was written by Paul Marquess, C<pmqs@cpan.org>.

=head1 MODIFICATION HISTORY

See the Changes file.

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2005-2026 Paul Marquess. All riU+3F '?' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_MAGICAL_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
/* U+40 '@' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
/* U+41 'A' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_MAGICAL_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
/* U+42 'B' */             �?     �?     �?     hN     @¾                  @ @     @@     @@     �      �                    ?      ?      ?     0       0              Såtd    ?      ?      ?     0       0              Påtd   ¶<     ¶<     ¶<     ¼J      ¼J             Qåtd                                                  Råtd   �?     �?     �?     p
     p
                          €#€ ‘Œ€`�    BÐ  Z   Ñ³ˆHˆ0 4€    ˆ 
‚    )  ÀB€€  @€   ‚@ €€ 	È ¢@!r0 ‘ Hƒ  se the global
variable C<PL_na>, though this is rather less efficient than using a local
variable.  Remember though, that hash keys in perl are free to contain
embedded nulls, so using C<strlen()> or similar is not a good way to find
the length of hash keys.  This is very similar to the C<SvPV()> macro
described elsewhere in this document.  See also C<L</HeUTF8>>.

If you are using C<HePV> to get values to pass to C<newSVpvn()> to create a
new SV, you should consider using C<newSVhek(HeKEY_hek(he))> as it is more
efficient.

=for athe
 * region protected by the setjmp()s.  This caused exceptions within
 * END blocks and such to not be handled by the correct setjmp().
 *
 * The original patches that introduces flexible exceptions were:
 *
 * https://github.com/Perl/perl5/commit/312caa8e97f1c7ee342a9895c2f0e749625b4929
 * https://github.com/Perl/perl5/commit/14dd3ad8c9bf82cf09798a22cc89a9862dfd6d1a
 *
 */

#define dJMPENV		JMPENV cur_env

#define JMPENV_PUSH(v)                                                  \
    STMT_START {							\
        DEBUG_l({       coded in UTF-8.

You should use this I<after> a call to C<SvPV()> or one of its variants, in
case any call to string overloading updates the internal UTF-8 encoding flag.

=cut
*/
#define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)

/* Should all strings be treated as Unicode, and not just UTF-8 encoded ones?
 * Is so within 'feature unicode_strings' or 'locale :not_characters', and not
 * within 'use bytes'.  UTF-8 locales are not tested for here, because it gets
 * complicated by the probability of having categories in different localee used in both op.h and regexp.h  The definitions use the
 * shift form so that ext/B/Makefile.PL will pick them up.
 *
 * Data structures used in the two headers have common fields, and in fact one
 * is copied onto the other.  This makes it easy to keep them in sync */

/* This tells where the first of these bits is.  Setting it to 0 saved cycles
 * and memory.  I (khw) think the code will work if changed back, but haven't
 * tested it */
/* Make sure to update ext/re/re.pm when changing this! */
#ifndef RXf_PMf_STD_PMMOD_SHIFT / SV is one of the special boolean constants (PL_sv_yes or
PL_sv_no), or is a regular SV whose last assignment stored a copy of one.

=cut
*/

#define SvIsBOOL(sv)            Perl_sv_isbool(aTHX_ sv)

/*
=for apidoc Am|U32|SvGAMAGIC|SV* sv

Returns true if the SV has get magic or
overloading.  If either is true then
the scalar is active data, and has the potential to return a new value every
time it is accessed.  Hence you must be careful to
only read it once per user logical operation and work
with that returned value.  If neither   1465,  3453,   3,  12, UNI_LB__HL }   /* wb=hebrewletter */,
  {    20,  5131,   653,  18,   5, UNI_INCB__NONE }   /* indicconjunctbreak=none */,
  {     2,  2622,  4732,   8,   5, UNI_XPOSIXUPPER }   /* isxposixupper */,
  {     1,  6464,   565,   3,   6, UNI_SC__ONAO }   /* sc=olonal */,
  {     1,    98,     0,   4,   0, UNI_HLUW }   /* hluw */,
  {     0,  8226,   174,  16,   2, UNI_PC }   /* generalcategory=pc */,
  {     0,  1911,  1269,   7,   4, UNI_SC__THAI }   /* script=thai */,
  {    18,   135,   662,   2,   7, UNI_ELetent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
#      endif
#      if defined(getnetent)
#        define PERL_REENTR_USING_GETNETENT_R
#      endif
#    endif
#  endif /* HAS_GETNETENT_R */


#  ifdef HAS_GETPROTOBYNAME_R
#    if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
#      undef getprotobyname
#      if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR
#        define getprotobyname(a)nonnull(pTHX_2)
        __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX     \
        Perl_assert_aTHX; assert(sp); assert(*sp); assert(send); \
        assert(*sp <= send)

PERL_CALLCONV UV
Perl_grok_uint_by_base(pTHX_ const char * const start, STRLEN *len_p, I32 *flags, NV *approximation, uint_fast8_t base, const U32 lookup_bit, uint_fast8_t offset)
        Perl_attribute_nonnull_/* Replaces <langinfo.h>, and allows our code to work on systems that don't
 * have that. */

#ifndef PERL_LANGINFO_H
#det the time it was committed with a scan_commit. Note that
    the length is calculated by study_chunk, so that the minimum lengths
    are not known until the full pattern has been compiled, thus the
    pointer to the value.

  - lookbehind

    In the case of lookbehind the string being searched for can be
    offset past the start point of the final matching string.
    If this value was just blithely removed from the min_offset it would
    invalidate some of the calculations for how many chars must match
    before or after (adefine HAS_NTOHS		/**/

/* HAS_LONG_DOUBLE:
 *	This symbol will be defined if the C compiler supports long
 *	doubles.
 */
/* LONG_DOUBLESIZE:
 *	This symbol contains the size of a long double, so that the
 *	C preprocessor can make decisions based on it.  It is only
 *	defined if the system supports long doubles.  Note that this
 *	is sizeof(long double), which may include unused bytes.
 */
/* HAS_LDEXPL:
 *	This symbol, if defined, indicates that the ldexpl routine is
 *	available to shift a long double floating-point number
 *	bONV PP(pp_xor) __attribute__visibility__("hidden");
PERL_CALLCONV PP(unimplemented_op) __attribute__visibility__("hidden");

/* ex: set ro ft=c: */
/*    parser.h
 *
 *    Copyright (c) 2006, 2007, 2009, 2010, 2011 Larry Wall and others
 *
 *    You may distribute under the terms of either the GNU General Public
 *    License or the Artistic License, as specified in the README file.
 * 
 * This file defines the layout of the parser object used by the parser
 * and lexer (perly.c, toke.c).
 */

#define YYEMPTY		(-2)
#define PERL_IDE]
           : len == 1
             ? 0
             : array[len - 2];
}

#  endif
#endif
#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_OP_C)

PERL_STATIC_INLINE STRLEN*
S_get_invlist_iter_addr(SV* invlist)
{
    PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR;

    /* Return the address of the UV that contains the current iteration
     * position */

    assert(is_invlist(invlist));

    return &(((XINVLIST*) SvANY(invlist))->iterator);
}

PERL_STATIC_INLINE void
S_invlist_iterinit(SV* invlist)	/* Initialize iterator for invlist */       * sub, but only one level up */
#define padadd_FIELD            0x10       /* set PADNAMEt_FIELD */
#define padfind_FIELD_OK        0x20       /* pad_findlex is permitted to see fields */

/* ASSERT_CURPAD_LEGAL and ASSERT_CURPAD_ACTIVE respectively determine
 * whether PL_comppad and PL_curpad are consistent and whether they have
 * active values */

#ifdef DEBUGGING
#  define ASSERT_CURPAD_LEGAL(label) \
    if (PL_comppad ? (AvARRAY(PL_comppad) != PL_curpad) : (PL_curpad != 0))  \
        Perl_croak(aTHX_ "panic: illegal ux;


/*
=for apidoc Ay||regmatch_info
Some basic information about the current match that is created by
Perl_regexec_flags and then passed to regtry(), regmatch() etc.
It is allocated as a local var on the stack, so nothing should be
stored in it that needs preserving or clearing up on croak().
For that, see the aux_info and aux_info_eval members of the
regmatch_state union.

=cut
*/

typedef struct {
    REGEXP *prog;        /* the regex being executed */
    const char * strbeg; /* real start of string */
    char *strend;      ctions that support the use of hashes in
I<inside-out classes>, described in L<Hash::Util::FieldHash>.

By default C<Hash::Util> does not export anything.

=head2 Restricted hashes

5.8.0 introduces the ability to restrict a hash to a certain set of
keys.  No keys outside of this set can be added.  It also introduces
the ability to lock an individual key so it cannot be deleted and the
ability to ensure that an individual value cannot be changed.

This is intended to largely replace the deprecated pseudo-hashes.

=over 4

=item B<lsymbol,
and indicates different C<GCC> attribute visibility

=item C<d_attribute_warn_unused_result>

From F<d_attribut.U>:

This variable conditionally defines
C<HASATTRIBUTE_WARN_UNUSED_RESULT>, which indicates that the C
compiler can know that certain functions have a return values
that must not be ignored, such as malloc() or open().

=item C<d_backtrace>

From F<d_backtrace.U>:

This variable conditionally defines the C<HAS_BACKTRACE> symbol, which
indicates to the C program that the backtrace() routine is available
to get a shen go ahead and do the compilation, usually by
making use of the C<B> module's functionality.

=head1 BUGS

The C<-q> and C<-qq> options don't work correctly if perl isn't
compiled with PerlIO support : STDOUT will be closed instead of being
redirected to C<$O::BEGIN_output>.

=head1 AUTHOR

Malcolm Beattie, C<mbeattie@sable.ox.ac.uk>

=cut
#      B.pm
#
#      Copyright (c) 1996, 1997, 1998 Malcolm Beattie
#
#      You may distribute under the terms of either the GNU General Public
#      License or the Artistic License, as speci only the real user identifier, and that the setgid()
uses only a single numeric argument, as opposed to a space-separated
list of numbers.

=item C<setjmp>

Not implemented.  C<setjmp()> is C-specific: use C<eval {}> instead,
see L<perlfunc/eval>.

=item C<setlocale>

WARNING!  Prior to Perl 5.28 or on a system that does not support
thread-safe locale operations, do NOT use this function in a
L<thread|threads>.  The locale will change in all other threads at the
same time, and should your thread get paused by the operating system,/usr/lib/perl5/5.44.0/unicore/lib/GrExt/Y.pl type=file
/usr/lib/pe######################################################################
# WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl
#          DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead
######################################################################
$Config::Git_Data=<<'ENDOFGIT';
git_commit_id=''
git_describe=''
git_branch=''
git_uncommitted_changes=''
git_commit_id_title=''

ENDOFGIT
package re;

# pragma for controlling the regexp engine
use stfrom the attribute is assigned to the sub immediately after
the prototype from the sub, which means that if both are declared at the
same time, the traditionally defined prototype is ignored.  In other words,
C<sub foo($$) : prototype(@) {}> is indistinguishable from C<sub foo(@){}>.

If illegalproto warnings are enabled, the prototype declared inside this
attribute will be sanity checked at compile time.

=item const

This experimental attribute, introduced in Perl 5.22, only applies to
anonymous subroutines.  It causes the subrout),
which would cause the earlier " || die;\nexit;" to be skipped in any
sequence of code fragment extractions.

To avoid this problem, when it encounters a here document whilst
extracting from a modifiable string, C<extract_quotelike> silently
rearranges the string to an equivalent piece of Perl:

        <<'EOMSG'
        This is the message.
        EOMSG
        || die;
        exit;

in which the here document I<is> contiguous. It still leaves the
matching position after the here document, but now the rest of the line
on whichied, the set C</["'`]/> is used. If the text to be processed
is not specified either, C<$_> is used.

In list context, C<extract_delimited> returns a array of three
elements, the extracted substring (I<including the surrounding
delimiters>), the remainder of the text, and the skipped prefix (if
any). If a suitable delimited substring is not found, the first
element of the array is the empty string, the second is the complete
original text, and the prefix returned in the third element is an
empty string.

In a scalar context, just tng the line number
does not change the current position within the file/buffer being read.

The contents of C<$/> are used to determine what constitutes a line
terminator.

=head2 fileno

    $z->fileno()
    fileno($z)

If the C<$z> object is associated with a file or a filehandle, C<fileno>
will return the underlying file descriptor. Once the C<close> method is
called C<fileno> will return C<undef>.

If the C<$z> object is associated with a buffer, this method will return
C<undef>.

=head2 close

    $z->close() ;
    close $z ;
ream before you start
uncompressing, you can avoid having to use C<trailingData> by setting the
C<InputLength> option.

=back

=head2 OneShot Examples

Say you have a zip file, C<file1.zip>, that only contains a
single member, you can read it and write the uncompressed data to the
file C<file1.txt> like this.

    use strict ;
    use warnings ;
    use IO::Uncompress::Unzip qw(unzip $UnzipError) ;

    my $input = "file1.zip";
    my $output = "file1.txt";
    unzip $input => $output
        or die "unzip failed: $UnzipError\n";

bjects when the program is
terminating.

Therefore, if you want your scripts to be able to run on all versions
of Perl, you should call C<close> explicitly and not rely on automatic
closing.

Returns true on success, otherwise 0.

If the C<AutoClose> option has been enabled when the IO::Uncompress::Bunzip2
object was created, and the object is associated with a file, the
underlying file will also be closed.

=head2 nextStream

Usage is

    my $status = $z->nextStream();

Skips to the next compressed data stream in the input file/br Options>.

It returns an C<IO::Compress::RawDeflate> object on success and C<undef> on failure.
The variable C<$RawDeflateError> will contain an error message on failure.

If you are running Perl 5.005 or better the object, C<$z>, returned from
IO::Compress::RawDeflate can be used exactly like an L<IO::File|IO::File> filehandle.
This means that all normal output file operations can be carried out
with C<$z>.
For example, to write to a compressed file/buffer you can use either of
these forms

    $z->print("hello world\n");
    pr#*sysread  = \&_notAvailable;
#*syswrite = \&_write;

1;

__END__

=head1 NAME

IO::Compress::Base - Base Class for IO::Compress modules

=head1 SYNOPSIS

    use IO::Compress::Base ;

=head1 DESCRIPTION

This module is not intended for direct use in application code. Its sole
purpose is to be sub-classed by IO::Compress modules.

=head1 SUPPORT

General feedback/questions/bug reports should be sent to
L<https://github.com/pmqs/IO-Compress/issues> (preferred) or
L<https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress>.

=heed to control the
destination of the compressed data. This parameter can take one of
these forms.

=over 5

=item A filename

If the C<$output_filename_or_reference> parameter is a simple scalar, it is
assumed to be a filename.  This file will be opened for writing and the
compressed data will be written to it.

=item A filehandle

If the C<$output_filename_or_reference> parameter is a filehandle, the
compressed data will be written to it.  The string '-' can be used as
an alias for standard output.

=item A scalar reference

If C< ],
    };
}

sub _trim {
    my $data = shift;

    return '' unless defined $data;

    $data =~ s/^\s+//;
    $data =~ s/\s+$//;
    return $data;
}

1;

=head1 TAP GRAMMAR

B<NOTE:>  This grammar is slightly out of date.  There's still some discussion
about it and a new one will be provided when we have things better defined.

The L<TAP::Parser> does not use a formal grammar because TAP is essentially a
stream-based protocol.  In fact, it's quite legal to have an infinite stream.
For the same reason that we don't apply regexes #######

=head2 Instance Methods

=head3 C<next>

  my $parser = TAP::Parser->new( { source => $file } );
  while ( my $result = $parser->next ) {
      print $result->as_string, "\n";
  }

This method returns the results of the parsing, one result at a time.  Note
that it is destructive.  You can't rewind and examine previous results.

If callbacks are used, they will be issued before this call returns.

Each result returned is a subclass of L<TAP::Parser::Result>.  See that
module and related classes for more information on how taviour of these methods are described in
L<Digest>.

=head1 SEE ALSO

L<Digest>
package Digest::file;

use strict;
use warnings;

use Exporter ();
use Carp qw(croak);
use Digest ();

our $VERSION   = "1.20";
our @ISA       = qw(Exporter);
our @EXPORT_OK = qw(digest_file_ctx digest_file digest_file_hex digest_file_base64);

sub digest_file_ctx {
    my $file = shift;
    croak("No digest algorithm specified") unless @_;
    open( my $fh, "<", $file ) || croak("Can't open '$file': $!");
    binmode($fh);
    my $ctx = Digest->new(@_)ring
13744		classifier (dancer/acrobat)
13745		Phonemogram
13747		Classifier moving back and forth
13748		Phonemogram (cryptography)
13749		Logogram (in combination with \C268B)
1374A		Classifier moon
1374B		Classifier moon/light (together with Re, representing the sun and the moon as the two lights)
1374D	1374E	Logogram (Geb)
1374F		Logogram (the earthmaker (divinity))
13751	13752	Logogram (the utterance, divinity)
13753	13754	Logogram (perception/knowledge (divinity))
13758		Logogram (first person singular, for Harsomtus)
13759		E0	2E4	N
300	304	M
306	30C	M
30F		M
311		M
313	314	M
31B		M
323	328	M
32D	32E	M
330	331	M
338		M
340	341	N
342		M
343	344	N
345		M
374		N
37A		N
37E		N
384	385	N
387		N
3D0	3D6	N
3F0	3F2	N
3F4	3F5	N
3F9		N
587		N
653	655	M
675	678	N
93C		M
958	95F	N
9BE		M
9D7		M
9DC	9DD	N
9DF		N
A33		N
A36		N
A59	A5B	N
A5E		N
B3E		M
B56	B57	M
B5C	B5D	N
BBE		M
BD7		M
C56		M
CC2		M
CD5	CD6	M
D3E		M
D57		M
DCA		M
DCF		M
DDF		M
E33		N
EB3		N
EDC	EDD	N
F0C		N
F43		N
F4D		N
F52		N
F57		N
F5C		N
F69		N
F73		N
F75	F79	N
F81		N
F93		N
F9D		N
FA2		N
FA7		N
		A forearm, with the palm of the hand facing upwards (D36), written over a wall of the palace, with ornamental chevaux de frise on top of the wall, with internal decoration (O11).
13267		An enclosure wall with battlements on the front side and top, and on the vertical line of the opening.
13268		The corner of a wall, with battlements, with the opening in the bottom right corner.
13269		A wide cup (W10) above a half round loaf of bread (X1), written inside the enclosed part of an enclosure wall without battlements, with a block on , connected by three lines, in front of a spear made into a standard, with a circle on either side of the spear tip, with a loop over the standard (Jsesh/Gardiner R15), on top of a standard used for carrying religious symbols (R12), written on top of a parcel of land with irrigation ditches (N24).
13229		Man/god, standing, with a double plume/feather headdress, right arm forward, hand at the height of the shoulder, holding a crook (S38) of the size of the man, left arm hanging beside the body, holding a flagellum (S45) horizontally
13CFD		G176
13CFE		G176A
13CFF		G177
13D00		G179
13D01		G284
13D02		G283
13D03		G182
13D04		G16A
13D05		G16B
13D07		G185
13D08		G282
13D09		G186
13D0A		G186D
13D0C		G186B
13D0D		G64
13D0E		G66
13D10		H13
13D14		H14
13D15		H14A
13D16		H15
13D17		H16
13D18		H16A
13D19		H18A
13D1A		H17
13D1B		H18
13D1C		H19
13D1D		H20
13D1E		H2A
13D1F		H44
13D20		H5A
13D21		H5B
13D22		H30
13D23		H26
13D24		H45
13D25		H41
13D26		H31
13D27		H32
13D28		H25
13D29		H34
13D2A		H46
13D2B		H38
13D2C		H39
13D2D		H40
13D2E		H42
13D2F		I28
13D34		I3A
13D38		I10After
200B		ZWSpace
200C		Combining_Mark
200D		ZWJ
200E	200F	Combining_Mark
2010		Unambiguous_Hyphen
2011		Glue
2012	2013	Unambiguous_Hyphen
2014		Break_Both
2018		Pi_QU
2019		Pf_QU
201A		Open_Punctuation
201B	201C	Pi_QU
201D		Pf_QU
201E		Open_Punctuation
201F		Pi_QU
2024	2026	Inseparable
2027		Break_After
2028	2029	Mandatory_Break
202A	202E	Combining_Mark
202F		Glue
2030	2037	Postfix_Numeric
2039		Pi_QU
203A		Pf_QU
203C		ExtPict_NS
203D		Nonstarter
2044		Infix_Numeric
2045		Open_Punctuation
2046		Close_Punctuation
2047	2048	Nonsta	Uncommon_Use
926B	9280	R# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
# This file is machine-generated by lib/unicore/mktables from the Unicode
# database, Version 17.0.0.  Any changes made here will be lost!

# !!!!!!!   IT IS DEPRECATED TO USE THIS FILE   !!!!!!!

# This file is for internal use by core Perl only.  It is retained for
# backwards compatibility with applications that may have come to rely on it,
# but its format and even its name or existence are subject to change without
# notice in a future Perl version.  Don't usase.



# The name this table is to be known by, with the format of the mappings in
# the main body of the table, and what all code points missing from this file
# map to.
$Unicode::UCD::SwashInfo{'ToIdentifierType'}{'format'} = 'sw'; # string, but some elements are interpreted as a list; white space occurs only as list item separators
$Unicode::UCD::SwashInfo{'ToIdentifierType'}{'missing'} = 'Not_Character';

return <<'END';
9	D	Not_XID
20	26	Not_XID
27		Inclusion
28	2C	Not_XID
2D	2E	Inclusion
2F		Not_XID
30	39	Recommended
3A		Inc		SINGLE CHARACTER INTRODUCER: control
9A		SCI: abbreviation
9B		CONTROL SEQUENCE INTRODUCER: control
9B		CSI: abbreviation
9C		STRING TERMINATOR: control
9C		ST: abbreviation
9D		OPERATING SYSTEM COMMAND: control
9D		OSC: abbreviation
9E		PRIVACY MESSAGE: control
9E		PM: abbreviation
9F		APPLICATION PROGRAM COMMAND: control
9F		APC: abbreviation
A0		NBSP: abbreviation
AD		SHY: abbreviation
1A2		LATIN CAPITAL LETTER GHA: correction
1A3		LATIN SMALL LETTER GHA: correction
34F		CGJ: abbreviation
616		ARABIC SMALL HIGH LIGATURE ALEF W'; # code point maps to itself

# Some code points require special handling because their mappings are each to
# multiple code points.  These do not appear in the main body, but are defined
# in the hash below.

# Each key is the string of N bytes that together make up the UTF-8 encoding
# for the code point.  (i.e. the same as looking at the code point's UTF-8
# under "use bytes").  Each value is the UTF-8 of the translation, for speed.
%Unicode::UCD::ToSpecNFKCCF = (
"\xC2\xA8" => "\x{0020}\x{0308}",             # U+00A8 => 0020 12
94176
94180
94194
94199
94208
101590
101631
101663
101760
101875
110576
110580
110581
110588
110589
110591
110592
110883
110898
110899
110928
110931
110933
110934
110948
110952
110960
111356
113664
113771
113776
113789
113792
113801
113808
113818
113820
113821
113823
113824
117760
118013
118016
118452
118458
118481
118496
118513
118608
118724
118784
119030
119040
119079
119081
119141
119146
119149
119171
119173
119180
119210
119214
119275
119296
119362
119365
119366
119488
119508
119520
119540
119552
119639
119648
119673
119808
00
69623
69632
69710
69714
69750
69759
69821
69822
69827
69840
69865
69872
69882
69888
69941
69942
69960
69968
70007
70016
70112
70113
70133
70144
70162
70163
70210
70272
70279
70280
70281
70282
70286
70287
70302
70303
70314
70320
70379
70384
70394
70400
70404
70405
70413
70415
70417
70419
70441
70442
70449
70450
70452
70453
70458
70459
70469
70471
70473
70475
70478
70480
70481
70487
70488
70493
70500
70502
70509
70512
70517
70528
70538
70539
70540
70542
70543
70544
70582
70583
70593
70594
70595
70597
70598
70599
70603
70604
70614

72848
72850
72872
72873
72887
72960
72967
72968
72970
72971
73015
73018
73019
73020
73022
73023
73032
73040
73050
73056
73062
73063
73065
73066
73103
73104
73106
73107
73113
73120
73130
73136
73180
73184
73194
73440
73465
73472
73489
73490
73531
73534
73563
73648
73649
73664
73714
73727
74650
74752
74863
74864
74869
74880
75076
77712
77811
77824
78934
78944
82939
82944
83527
90368
90426
92160
92729
92736
92767
92768
92778
92782
92863
92864
92874
92880
92910
92912
92918
92928
92998
93008
93018
93019
93026
93027
93048
93053
93072
93552
126553
126554
126555
126556
126557
126558
126559
126560
126561
126563
126564
126565
126567
126571
126572
126579
126580
126584
126585
126589
126590
126591
126592
126602
126603
126620
126625
126628
126629
126634
126635
126652
126704
126706
126976
127020
127024
127124
127136
127151
127153
127168
127169
127184
127185
127222
127232
127406
127462
127491
127504
127548
127552
127561
127568
127570
127584
127590
127744
128729
128732
128749
128752
128765
128768
128986
128992
129004
129008
129009
129024
129036
129040
129096
129104
129114
17958
7960
7966
7968
8006
8008
8014
8016
8024
8025
8026
8027
8028
8029
8030
8031
8062
8064
8117
8118
8133
8134
8148
8150
8156
8157
8176
8178
8181
8182
8191
8192
8293
8294
8306
8308
8335
8336
8349
8352
8386
8400
8433
8448
8588
8592
9258
9280
9291
9312
11124
11126
11508
11513
11558
11559
11560
11565
11566
11568
11624
11631
11633
11647
11671
11680
11687
11688
11695
11696
11703
11704
11711
11712
11719
11720
11727
11728
11735
11736
11743
11744
11870
11904
11930
11931
12020
12032
12246
12272
12352
12353
12439
12441
12544
12549
12592
12593
64285
64311
64312
64317
64318
64319
64320
64322
64323
64325
64326
64434
64467
64832
64848
64912
64914
64968
64976
65022
65024
65050
65056
65060
65072
65107
65108
65127
65128
65132
65136
65141
65142
65277
65279
65280
65281
65471
65474
65480
65482
65488
65490
65496
65498
65501
65504
65511
65512
65519
65529
65548
65549
65575
65576
65595
65596
65598
65599
65614
65616
65630
65664
65787
65792
65795
65799
65844
65847
65931
66304
66335
66336
66340
66352
66379
66432
66462
66463
66500
66504
66518
66560
66718
66720
66730
67584
67590
67592
672
3428
3430
3456
3457
3460
3461
3479
3482
3506
3507
3516
3517
3518
3520
3527
3530
3531
3535
3541
3542
3543
3544
3552
3558
3568
3570
3573
3585
3643
3647
3676
3713
3715
3716
3717
3718
3723
3724
3748
3749
3750
3751
3774
3776
3781
3782
3783
3784
3790
3792
3802
3804
3808
3840
3912
3913
3949
3953
3992
3993
4029
4030
4045
4046
4059
4096
4294
4295
4296
4301
4302
4304
4681
4682
4686
4688
4695
4696
4697
4698
4702
4704
4745
4746
4750
4752
4785
4786
4790
4792
4799
4800
4801
4802
4806
4808
4823
4824
4881
4882
4886
4888
4955
4957
4989
4992
5018
65
2571
2575
2577
2579
2601
2602
2609
2610
2612
2613
2615
2616
2618
2620
2621
2622
2627
2631
2633
2635
2638
2641
2642
2649
2653
2654
2655
2662
2679
2689
2692
2693
2702
2703
2706
2707
2729
2730
2737
2738
2740
2741
2746
2748
2758
2759
2762
2763
2766
2768
2769
2784
2788
2790
2802
2809
2816
2817
2820
2821
2829
2831
2833
2835
2857
2858
2865
2866
2868
2869
2874
2876
2885
2887
2889
2891
2894
2901
2904
2908
2910
2911
2916
2918
2936
2946
2948
2949
2955
2958
2961
2962
2966
2969
2971
2972
2973
2974
2976
2979
2981
2984
2987
2990
3002
3006
3011119808
119893
119894
119965
119966
119968
119970
119971
119973
119975
119977
119981
119982
119994
119995
119996
119997
120004
120005
120070
120071
120075
120077
120085
120086
120093
120094
120122
120123
120127
120128
120133
120134
120135
120138
120145
120146
120486
120488
120780
120782
120832
122928
122990
126464
126468
126469
126496
126497
126499
126500
126501
126503
126504
126505
126515
126516
126520
126521
126522
126523
126524
126530
126531
126535
126536
126537
126538
126539
126540
126541
126544
126545
126547
126548
126549
12655
68736
68787
68800
68851
68858
68864',
'V6
43392
43470
43472
43482
43486
43488',
'V4
43264
43310
43311
43312',
'V4
70144
70162
70163
70210',
'V4
69760
69827
69837
69838',
'V6
67072
67383
67392
67414
67424
67432',
'V4
42192
42240
73648
73649',
'V2
66176
66205',
'V4
67872
67898
67903
67904',
'V2
69968
70007',
'V4
2112
2140
2142
2143',
'V4
68288
68327
68331
68343',
'V4
71168
71237
71248
71258',
'V6
72096
72104
72106
72152
72154
72165',
'V4
70656
70748
70749
70754',
'V4
124368
124411
124415
124416',
'V2
68608
68681',
'V4
66736
66772
66rrides the normal behavior if all of the listed conditions are true.
# - The casing context is always the context of the characters in the original string,
#   NOT in the resulting string.
# - Case distinctions in the condition list are not significant.
# - Conditions preceded by "Not_" represent the negation of the condition.
# The condition list is not represented in the UCD as a formal property.
#
# A language ID is defined by BCP 47, with '-' and '_' treated equivalently.
#
# A casing context for a character is defined in the
#ile is machine-generated by lib/unicore/mktables from the Unicode
# database, Version 17.0.0.  Any changes made here will be lost!

# !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
# This file is for internal use by core Perl only.  The format and even the
# name or existence of this file are subject to change without notice.  Don't
# use it directly.  Use Unicode::UCD to access the Unicode character data
# base.


return <<'END';
00000
NULL

00000
NUL

00001
START OF HEADING

00001
SOH

00002
START OF TEXT

00002
STX

00003
END OF TEXh_name if you import the fields.  Array references are available as
regular array variables, so for example C<@{ $host_obj-E<gt>aliases()
}> would be simply @h_aliases.

The gethost() function is a simple front-end that forwards a numeric
argument to gethostbyaddr() by way of Socket::inet_aton, and the rest
to gethostbyname().

To access this functionality without the core overrides,
pass the C<use> an empty import list, and then access
function functions with their full qualified names.
On the other hand, the built-ins are still aift;
  my $arr  = @_ == 1 && ref($_[0]) ? $_[0] : \@_;
  my $line = join("", @$arr);

  # Perls < 5.10.1 (with the exception of 5.8.9) have a performance problem with
  # the substitutions below when dealing with strings stored internally in
  # UTF-8, so downgrade them (if possible).
  # Data passed to datasend() should be encoded to octets upstream already so
  # shouldn't even have the UTF-8 flag on to start with, but if it so happens
  # that the octets are stored in an upgraded string (as can sometimes occur)
  # then they wou    # TODO: file-discipline things here!
  }

  $self->{'source_fh'} = $handle;
  DEBUG and print STDERR "  Its handle is $handle\n";
  return 1;
}

# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

sub get_title_short {  shift->get_short_title(@_)  } # alias

sub get_short_title {
  my $title = shift->get_title(@_);
  $title = $1 if $title =~ m/^(\S{1,60})\s+--?\s+./s;
    # turn "Foo::Bar -- bars for your foo" into "Foo::Bar"
  return $title;
}

sub get_title       { shift->_get_titled_section(
  'NAME'

In the unlikely situation that you need to tell the parser that you will
accept additional directives ("=foo" things), you need to first set the
parser to treat its content as data (i.e., not really processed at
all), or as verbatim (mostly just expanding tabs), or as processed text
(parsing formatting codes like BE<lt>...E<gt>).

For example, to accept a new directive "=method", you'd presumably
use:

    $parser->accept_directive_as_processed("method");

so that you could have Pod lines like:

    =method I<$whatever> thing B<uically considers paths specified in the C<PERL5LIB> environment
as this is prepended to I<@INC> by the Perl interpreter itself.
This attribute's default value is B<TRUE>.  If you want to search
only specific directories, set $self->inc(0) before calling
$inc->survey or $inc->find.


=item $search->verbose( I<nonnegative-number> );

This attribute, if set to a nonzero positive value, will make searches output
(via C<warn>) notes about what they're doing as they do it.
This option may be useful for debugging a pod-related module.
Thi  unless( -s $out ) {
    if( $formatter->can( 'if_zero_length' ) ) {
      # Basically this is just a hook for Pod::Simple::Checker; since
      # what other class could /happily/ format an input file with Pod
      # as a 0-length output file?
      $formatter->if_zero_length( $file, $out, $out_fh );
    } else {
      $self->warn( "Got a 0-length file from $$found_things[0] via $formatter_class!?\n" );
    }
  }

  DEBUG and print "Finished writing to $out.\n";
  return($out, $formatter) if wantarray;
  return $out;
}

#........e, Pod::Text will assume that each sentence ends
in two spaces, and will try to preserve that spacing.  If set to false, all
consecutive whitespace in non-verbatim paragraphs is compressed into a single
space.  Defaults to false.

=item stderr

[3.10] Send error messages about invalid POD to standard error instead of
appending a POD ERRORS section to the generated output.  This is equivalent to
setting C<errors> to C<stderr> if C<errors> is not already set.  It is
supported for backward compatibility.

=item utf8

[3.12] If this opngle quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.       },
    5.044000 => {
        delta_from => 5.043011,
        changed => {
        },
        removed => {
        }
    },
);

%utilities = Module::CoreList::_undelta(\%delta);

# Create aliases with trailing zeros for $] use

$utilities{'5.000'} = $utilities{5};

_create_aliases(\%utilities);

sub _create_aliases {
    my ($hash) = @_;

    for my $version (keys %$hash) {
        next unless $version >= 5.010;

        my $padded = sprintf "%0.6f", $version;

        # If the version in string form isn't the same as the numeric ve according to the C<=encoding> declaration.

=head2 C<< new_from_handle($handle, $filename, collect_pod => 1, decode_pod => 1) >>

This works just like C<new_from_file>, except that a handle can be provided
as the first argument.

Note that there is no validation to confirm that the handle is a handle or
something that can act like one.  Passing something that isn't a handle will
cause a exception when trying to read from it.  The C<filename> argument is
mandatory or undef will be returned.

You are responsible for setting the deco equivalent to any of the names in
C<@filenames> to disk, creating subdirectories as necessary. This
might not work too well under VMS.
Under MacPerl, the file's modification time will be converted to the
MacOS zero of time, and appropriate conversions will be done to the
path.  However, the length of each element of the path is not
inspected to see whether it's longer than MacOS currently allows (32
characters).

If C<extract> is called without a list of file names, the entire
contents of the archive are extracted.

Returns a list|        else
        |	    Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
        |    } else {
        |        /* Pants. I don't think that it should be possible to get here. */
        |	Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
        |    }
        |}
        |#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE
        |
        |#define croak_xs_usage        S_croak_xs_usage
        |
        |#endif
        |
        |/* NOTE: the prototype of newXSproto() is different in versions of perls,
    as before. The newer C<targetable> method may be true under
additional circumstances.

If the optimization can not be applied, this returns undef.  If it can be
applied, this method returns a hash reference containing the following
information:

  type:      Any of the characters i, u, n, p
  with_size: Bool indicating whether this is the sv_setpvn variant
  what:      The code that actually evaluates to the output scalar
  what_size: If "with_size", this has the string length (as code,
             not constant, including leading    # recursively search through the named directories (skipping any
    # which don't exist or contain Makefile.PL files).

    # For each *.pm or *.pl file found $self->libscan() is called with
    # the default installation path in $_[1]. The return value of
    # libscan defines the actual installation location.  The default
    # libscan function simply returns the path.  The file is skipped
    # if libscan returns false.

    # The default installation location passed to libscan in $_[1] is:
    #
    #  ./*.pm		=> $(INST_LIBVMS commands to manipulate object library.

=cut

sub xs_make_static_lib {
    my ($self, $object, $to, $todir) = @_;

    my @objects;
    if ($self->{XSMULTI}) {
        # The extension name should be the main object file name minus file type.
        my $lib = $object;
        $lib =~ s/\$\(OBJ_EXT\)\z//;
        my $override = $self->_xsbuild_value('xs', $lib, 'OBJECT');
        $object = $override if defined $override;
        @objects = map { $self->fixpath($_,0) } split /(?<!\^)\s+/, $object;
    }
    else {
        push @o zero or more directories
containing archive
libraries that relate to perl modules and should be linked into a new
perl binary. It writes a corresponding F<miniperlmain.c> or F<perlmain.c>
file that
is a plain C file containing all the bootstrap code to make the
modules associated with the libraries available from within perl.
If the first argument to C<writemain()> is a reference to a scalar it is
used as the filename to open for output. Any other reference is used as
the filehandle to write to. Otherwise output defaults to C<STDOns the temporary file name (which will be
a derivative of the original in the same directory) so that the caller can
use it to install under. In all other cases of success returns $file.
On failure throws a fatal error.

=end _private

=cut

sub _unlink_or_rename { #XXX OS-SPECIFIC
    my ( $file, $tryhard, $installing )= @_;

    # this chmod was originally unconditional. However, its not needed on
    # POSIXy systems since permission to unlink a file is specified by the
    # directory rather than the file; and in fact it screweake_filename});
    delete $self->{string};
  }
  elsif (defined $self->{file} and -e $self->{file}) {
    open my $fh, '<', $self->{file}
      or die "Cannot open typemap file '"
             . $self->{file} . "' for reading: $!";
    local $/ = undef;
    my $string = <$fh>;
    $self->_parse(\$string, $self->{lineno_offset}, $self->{file});
  }
}


=head2 file

Get/set the file that the typemap is written to when the
C<write> method is called.

=cut

sub file {
  $_[0]->{file} = $_[1] if @_ > 1;
  $_[0]->{file}
}

=head2 add_ty 9DC0
6B64 4F4C 6CDA 73BC 7689 7D2A 9B86
673F 6B21 4F3A 4F7D 523A 523E 5E9B 8326 6828 83BF
7D58 86D3 8D50 8786 8CDC
5306 56EA 56F1 82C1 5FE9 679E 6031 60A4 68C7 7127
8471 6F17 8061 84EF 8525 9AA2 66B0 6A05 6A2C 719C
747D 7481 7DEB 8066 806A 71EA 779B 7BF5 8070 87CC
936F 7E71 93E6 9A18 9A44
4ECE 4E1B 5F93 5A43 5B6E 5F96 5F9E 60B0 6DD9 742E
6152 6F0E 6F40 6F68 8AB4 8CE8 8CE9 6A37 85C2 53E2
7047 6B09 721C
6181 8B25
8310
51D1 6E4A 8160 8F8F 8F33
7C97 89D5 9E81 9E84 9EA4
5F82 6B82
4FC3 731D 8128 9162 7604 851F 8A8E 8D97 5648 61B1
8E27 9dequate for C<overrideCJK> of C<Unicode::Collate>
and makes tailoring of CJK Unified Ideographs in the order
of CLDR's gb2312han ordering.

=head1 CAVEAT

The gb2312han ordering includes 5 code points in private use area
(E2D8..E2DC), that can't utilize C<weightGB2312()> for collation.
For them, use C<entry> instead.

=head1 SEE ALSO

=over 4

=item CLDR - Unicode Common Locale Data Repository

L<http://cldr.unicode.org/>

=item Unicode Locale Data Markup Language (LDML) - UTS #35

L<http://www.unicode.org/reports/tr35/>

=item L<U AND MACRON
022A      ; [.22FC.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
0151      ; [.22FC.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
006F 030B ; [.22FC.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
0150      ; [.22FC.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
004F 030B ; [.22FC.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0153      ; [.22FC.0023.0002] # LATIN SMALL LIGATURE OE
0152      ; [.22FC.0023.0008] # LATIN CAPITAL LIGATURE OE
00E5      ; [.22FD.0020.0ER Z WITH CARON
017D      ; [.2287.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
005A 030C ; [.2287.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
use Unicode::Collate::CJK::Stroke;
+{
   locale_version => 1.31,
   overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
   entry => <<'ENTRY', # for DUCET v13.0.0
0101      ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
0061 0304 ; [.1FA2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
0100      ; [.1FA2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
0041 0304 6     ; [*038A.0020.0004][.8CA9.0020.0004][*038B.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00      ; [.CBDC.0020.0004] # KANGXI RADICAL ONE
3192      ; [.CBDC.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280      ; [.CBDC.0020.0006] # CIRCLED IDEOGRAPH ONE
1F229     ; [.CBDC.0020.001C] # SQUARED CJK UNIFIED IDEOGRAPH-4E00
319C      ; [.8EC1.0020.0014] # IDEOGRAPHIC ANNOTATION FOURTH MARK
3286      ; [.AD39.0020.0006] # CIRCLED IDEOGRAPH SEVEN
3194      ; [.C8DF.0020.0014] # IDEOGRAPHIC ANNOTATION THREE MAR MARK>
30D8 30FC ; [.42F7.0020.0011.0002][.42DE.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
FF8D 30FC ; [.42F7.0020.0011.0002][.42DE.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
FF8D FF70 ; [.42F7.0020.0011.0002][.42DE.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKAN+{
   locale_version => 1.31,
# schwa doesn't require tailoring
   entry => <<'ENTRY', # for DUCET v13.0.0
00E7      ; [.1FD7.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
  ; [.0000.0000.0000] # COMBINING CYRILLIC KAVYKA
A67E      ; [.0000.0000.0000] # CYRILLIC KAVYKA
0485      ; [.0000.0021.0000][.0000.00A1.0002][.0000.0021.0000] # COMBINING CYRILLIC DASIA PNEUMATA
0486      ; [.0000.0021.0000][.0000.00A2.0002][.0000.0021.0000] # COMBINING CYRILLIC PSILI PNEUMATA
0301      ; [.0000.0021.0000][.0000.00A3.0002][.0000.0021.0000] # COMBINING ACUTE ACCENT
00E1      ; [.1FA2.0020.0002][.0000.0021.0000][.0000.00A3.0002][.0000.0021.0000] # LATIN SMALL LETTER A WITH ACUTE
00C1      ; [.1FA2.0020.0008][.0000CCENT>
00DC 0340 ; [.2217.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
00FC      ; [.2217.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
0075 0308 ; [.2217.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
00DC      ; [.2217.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
0055 0308 ; [.2217.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
F967      ; [.804A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
FA70      ; [.82DE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
F905      ; [.81CB.0020.000.0032.0002.0301] # LATIN CAPITAL LETTER U WITH ACUTE; QQCM
00F9  ; [.0BD7.0020.0002.0075][.0000.0035.0002.0300] # LATIN SMALL LETTER U WITH GRAVE; QQCM
00D9  ; [.0BD7.0020.0008.0055][.0000.0035.0002.0300] # LATIN CAPITAL LETTER U WITH GRAVE; QQCM
00FB  ; [.0BD7.0020.0002.0075][.0000.003C.0002.0302] # LATIN SMALL LETTER U WITH CIRCUMFLEX; QQCM
00DB  ; [.0BD7.0020.0008.0055][.0000.003C.0002.0302] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX; QQCM
00FC  ; [.0BD7.0020.0002.0075][.0000.0047.0002.0308] # LATIN SMALL LETTER U WITH DIAERESISdefine UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER(uv)                  \
                                          (((UV) (uv) & 0xFFFE) == 0xFFFE)
#  endif
#  ifndef is_NONCHAR_utf8_safe
#    define is_NONCHAR_utf8_safe(s,e)     /*** GENERATED CODE ***/            \
( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
	    ( ( 0xB7 == ((const U8*)s)[1] ) ?                               \
		( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ? 3 : 0 )\
	    : ( ( 0xBF internally 
once an operation is in progress.

=head1 Supported Encodings

As of Perl 5.8.0, at least the following encodings are recognized.
Note that unless otherwise specified, they are all case insensitive
(via alias) and all occurrence of spaces are replaced with '-'.
In other words, "ISO 8859 1" and "iso-8859-1" are identical.

Encodings are categorized and implemented in several different modules
but you don't have to C<use Encode::XX> to make them available for
most cases.  Encode.pm will automatically load those modules o       print "xe     = $xe\n";
    }

    # If the mantissa is not an integer, round up to nearest integer, and then
    # convert the number to a string. It is important to always round up due to
    # how Newton's method behaves in this case. If the initial guess is too
    # small, the next guess will be too large, after which every succeeding
    # guess converges the correct value from above. Now, if the initial guess
    # is too small and n is large, the next guess will be much too large and
    # require a large number of il routines in the
caller environment and even overrides some (C<sin>, C<cos>).  This is
construed as a feature by the Authors, actually... ;-)

The code is not optimized for speed, especially because we use
C<Math::Complex> and thus go quite near complex numbers while doing
the computations even when the arguments are not. This, however,
cannot be completely avoided if we want things like C<asin(2)> to give
an answer instead of giving a fatal runtime error.

Do not attempt navigation using these formulas.

=head1 SEE ALSO

L<Math::fref = ref $self;
    my $class   = $selfref || $self;

    # Make "require" work.

    $class -> import() if $IMPORT == 0;

    # Don't modify constant (read-only) objects.

    return $self if $selfref && $self -> modify('from_dec');

    my $str = shift;
    my @r = @_;

    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {

        # If called as a class method, initialize a new object.

        unless ($selfref) {
            $self = bless {}, $class;
            #$self -> _init();
        }

        ($self->{sign}, platforms that don't support ANSI
escape sequences.

=item NO_COLOR

If this environment variable is set to any value, it suppresses generation of
escape sequences the same as if ANSI_COLORS_DISABLED is set to a true value.
This implements the L<https://no-color.org/> informal standard.  Programs that
want to enable color despite NO_COLOR being set will need to unset that
environment variable before any constant or function provided by this module
is used.

=back

=head1 COMPATIBILITY

Term::ANSIColor was first included with Perl  be one of the
new C<IO::Compress> or C<IO::Uncompress> modules.

=head1 GZIP INTERFACE

A number of functions are supplied in I<zlib> for reading and writing
I<gzip> files that conform to RFC 1952. This module provides an interface
to most of them.

If you have previously used C<Compress::Zlib> 1.x, the following
enhancements/changes have been made to the C<gzopen> interface:

=over 5

=item 1

If you want to open either STDIN or STDOUT with C<gzopen>, you can now
optionally use the special filename "C<->" as a synonym for C<\*STDent with the
results of the subtest. The subtest event itself will report to the proper file
and line number due to the context you acquired (even though it does not I<look>
like you used the context.

C<run_subtest()> can take additional arguments:

    run_subtest($name, $code, \%params, @args);

=over 4

=item @args

This allows you to pass arguments into the codeblock that gets run.

=item \%params

This is a hashref of parameters. Currently there are 3 possible parameters:

=over 4

=item buffered => $bool

This will turn the 
possible for Test2 to work around the issue, it should. (Patches and bug
reports welcome).

=head2 Test::Builder

L<Test::Builder> has had thread support for a long time. With Test2 the
mechanism for thread support was switched to L<Test2::IPC>. L<Test::Builder>
should still support threads as much as it did before the switch to Test2.
Support includes auto-enabling thread support if L<threads> is loaded before
Test::Builder.

If there is a deviation between the new and old threading behavior then it is a
bug (unless the old behavn arrayref.

B<Note:> that there is no validation when using C<set_items>, it is better to
use the C<add_item> interface.

=item $name = $arr->name()

Always returns the string C<< "<BAG>" >>.

=item $bool = $arr->verify(got => $got, exists => $bool)

Check if C<$got> is an array reference or not.

=item $arr->add_item($item)

Push an item onto the list of values to be checked.

=item @deltas = $arr->deltas(got => $got, convert => \&convert, seen => \%seen)

Find the differences between the expected bag values and those in the C<$gRSAL::TO_JSON = sub { +{ %{$_[0]} } };
        my $json = JSON::PP->new->ascii->pretty->canonical->allow_unknown->allow_blessed->convert_blessed;
        $data = $json->encode(\%bad);
        1;
    };
    $ok ||= eval {
        require Data::Dumper;
        local $Data::Dumper::Sortkeys = 1;
        $data = Data::Dumper::Dumper(\%bad);
        1;
    };

    $data = "Could not dump data... sorry." unless defined $data;

    $self->abort_trace("Not all files from hub '$hid' have been collected!\nHere is the leftover data:\n========ck->() unless $void;

    my $level = 0;
    my $caller;
    while (my @call = caller($level++)) {
        next if $call[0] eq __PACKAGE__;
        $caller = \@call;
        last;
    }

    my $handled;
    for my $handler (@{$HANDLERS{$caller->[0]}}) {
        $handled++ if $handler->(
            class   => $class,
            caller  => $caller,
            builder => $callback,
            args    => \@args,
        );
    }

    croak "mock_class should not be called in a void context without a registered handler"
        unlad Granum E<lt>exodist@cpan.orgE<gt>.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

See F<http://dev.perl.org/licenses/>

=cut
package Test2::Require;
use strict;
use warnings;

our $VERSION = '1.302219';

use Test2::API qw/context/;
use Carp qw/croak/;

sub skip {
    my $class = shift;
    croak "Class '$class' needs to implement 'skip()'";
}

sub import {
    my $class = shift;
    return if $class eq __PACKAGE__;

    my $skip = $class->skip(@_);
    return unlessThis plugin has no configuration.

=head1 ENVIRONMENT VARIABLES

See L<Test2::Env> for a list of meaningful environment variables.

=head1 API FUNCTIONS

See L<Test2::API> for these

=over 4

=item $ctx = context()

=item $events = intercept { ... }

=back

=head1 TOOLS

=head2 TARGET

See L<Test2::Tools::Target>.

You can specify a target class with the C<-target> import argument. If you do
not provide a target then C<$CLASS> and C<CLASS()> will not be imported.

    use Test2::V0 -target => 'My::Class';

    print $CLASS;  # My::e prefers the form listed above, i.e. it
splits on /\s+version\s+/ taking the first field as the name of the
tool that generated the file and the second field as version of that
tool. RWS]

=head1 VERSION SPECIFICATIONS

Some fields require a version specification (ex. L</requires>,
L</recommends>, L</build_requires>, etc.) to indicate the particular
versionZ<>(s) of some other module that may be required as a
prerequisite.  This section details the version specification formats
that are currently supported.

The simplest format fo--------#

#pod =method new
#pod
#pod   my $cmv = CPAN::Meta::Validator->new( $struct )
#pod
#pod The constructor must be passed a metadata structure.
#pod
#pod =cut

sub new {
  my ($class,$data) = @_;

  # create an attributes hash
  my $self = {
    'data'    => $data,
    'spec'    => eval { $data->{'meta-spec'}{'version'} } || "1.0",
    'errors'  => undef,
  };

  # create the object
  return bless $self, $class;
}

#pod =method is_valid
#pod
#pod   if ( $cmv->is_valid ) {
#pod     ...
#pod   }
#pod
#pod Returns a boolean vale is currently no way for a
distribution to specify a dependency on an optional feature of another
dependency, the use of C<optional_feature> is discouraged.  Instead,
create a separate, installable distribution that ensures the desired
feature is available.  For example, if C<Foo::Bar> has a C<Baz> feature,
release a separate C<Foo-Bar-Baz> distribution that satisfies
requirements for the feature.

=head3 prereqs

Example:

  prereqs => {
    runtime => {
      requires => {
        'perl'          => '5.006',
        'File::Spec'ead($buffer) > 0 ;
        $CPAN::Frontend->mydie("Error reading from $read: $!\n")
            if $gz->gzerror != Compress::Zlib::Z_STREAM_END();
        $gz->gzclose() ;
        $fhw->close;
        return 1;
    } else {
        my $command = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
        system(qq{$command -d -c "$read" > "$write"})==0;
    }
}


sub gtest {
    my($self) = @_;
    return $self->{GTEST} if exists $self->{GTEST};
    defined $self->{FILE} or $CPAN::Frontend->mydie("gtest called but no FILE specifiedy existing key in the given
C<$meta> object will be clobbered.

=head1 STRING DATA

The following methods return a single value, which is the value for the
corresponding entry in the distmeta structure.  Values should be either undef
or strings.

=over 4

=item *

abstract

=item *

description

=item *

dynamic_config

=item *

generated_by

=item *

name

=item *

release_status

=item *

version

=back

=head1 LIST DATA

These methods return lists of string values, which might be represented in the
distmeta structure as arrayreflection of the nearest cpan mirrors is performed,
this option can be used to turn on verbosity during the selection
process.

Do you want to see verbosity turned on when autoselecting mirrors?

=item use_prompt_default

When this is true, CPAN will set PERL_MM_USE_DEFAULT to a true
value.  This causes ExtUtils::MakeMaker (and compatible) prompts
to use default values instead of stopping to prompt you to answer
questions. It also sets NONINTERACTIVE_TESTING to a true value to
signal more generally that distributions should not try t my $self = shift;
    my $out = $self->SUPER::facet_data();
    $out->{info}->[0]->{debug} = 0;
    return $out;
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Test::Builder::TodoDiag - Test::Builder subclass of Test2::Event::Diag

=head1 DESCRIPTION

This is used to encapsulate diag messages created inside TODO.

=head1 SYNOPSIS

You do not need to use this directly.

=head1 SOURCE

The source code repository for Test2 can be found at
L<https://github.com/Test-More/test-more/>.

=head1 MAINTAINERS

=over 4

=item Chad Granume::status;


=head1 DESCRIPTION

B<STOP!> If you're just getting started writing tests, have a look at
L<Test2::Suite> first.

This is a drop in replacement for Test::Simple which you can switch to once you
get the hang of basic testing.

The purpose of this module is to provide a wide range of testing
utilities.  Various ways to say "ok" with better diagnostics,
facilities to skip tests, test future features and compare complicated
data structures.  While you can do almost anything with a simple
C<ok()> function, it doesn't providthat the module is much
shorter than its documentation!

=head1 COPYRIGHT AND DISCLAIMER

Copyright (c) 1999-2004 Sean M. Burke.  All rights reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

This program is distributed in the hope that it will be useful, but
without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.

=head1 AUTHOR

Sean M. Burke C<sburke@cpan.org>

=cut
package Locale::Maketext;
use strict;
ou = @_;
        ref $coderef or return;
        my $cv = B::svref_2object($coderef);
        $cv->isa('B::CV') or return;
        # bail out if GV is undefined
        $cv->GV->isa('B::SPECIAL') and return;

        return ($cv->GV->STASH->NAME, $cv->GV->NAME);
    };

}

sub sub_fullname {
    return join( '::', get_code_info( $_[1] ) );
}

my %Hints_loaded = ();

sub load_hints {
    my ($class, $sub) = @_;

    my ($package) = ( $sub =~ /(.*)::/ );

    if (not defined $package) {
        require Carp;
        Carp::croak(
       when the flow of control leaves the block which contained
it. For more details, see L<perlsyn/defer>.

This feature is available starting in Perl 5.36.

=head2 The 'enhanced_xx' feature

B<WARNING>: This feature is still experimental and the implementation may
change or be removed in future versions of Perl.  For this reason, Perl will
warn when you use the feature, unless you have explicitly disabled the warning:

    no warnings "experimental::eenhanced_xx";

This feature changes the meaning of the C</xx> regular expression patt is just:

     use Test;
     BEGIN { plan tests => 23 }

These are the things that you can put in the parameters to plan:

=over

=item C<tests =E<gt> I<number>>

The number of tests in your script.
This means all ok() and skip() calls.

=item C<todo =E<gt> [I<1,5,14>]>

A reference to a list of tests which are allowed to fail.
See L</TODO TESTS>.

=item C<onfail =E<gt> sub { ... }>

=item C<onfail =E<gt> \&some_sub>

A subroutine reference to be run at the end of the test script, if
any of the tests fail.  See L</ONFAIL>.

=backtime));
    my $sememe;

    foreach $sememe (@_ ? @_ : qw(exit hushed)) {
        $^H{'vmsish_exit'}   = 0 if $sememe eq 'exit';
        vmsish::hushed(0) if $sememe eq 'hushed';
    }
}

1;
# -*- mode: Perl; buffer-read-only: t -*-
# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
# This file is built by regen/warnings.pl.
# Any changes made here will be lost!

package warnings;

our $VERSION = "1.78";

# Verify that we're called correctly so that warnings will work.
# Can't use Carp, since Carp uses us!
# String regexps because constaer has a prefix, but
        # the functions parsing numbers don't require it, so check to see if it
        # actually is a binary number.

        $str =~ /^0[Bb]/ and
        $nstr = Math::BigInt -> bin_str_to_dec_flt_str($str))
    {
        return $obj_class -> new($nstr);
    }

    # If we get here, there is a bug in the code above this point.

    warn "Internal error: unable to handle literal constant '$str'.",
      " This is a bug, so please report this to the module author.";
    return $obj_class -> bnan();
}

######## a string returned; the 1 arg means that we are in
  # runtime, and this is the first level routine called from the user
  return _charnames::lookup_name($arg, 0, 1);
} # string_vianame

__END__

=encoding utf8

=head1 NAME

charnames - access to Unicode character names and named character sequences; also define character names

=head1 SYNOPSIS

 use charnames ':full';
 print "\N{GREEK SMALL LETTER SIGMA} is called sigma.\n";
 print "\N{LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW}",
       " is an officially named sequence of t.

See above documentation on the B<reval> method for further details.

=head2 root (NAMESPACE)

This method returns the name of the package that is the root of the
compartment's namespace.

Note that this behaviour differs from version 1.00 of the Safe module
where the root module could be used to change the namespace. That
functionality has been withdrawn pending deeper consideration.

=head2 mask (MASK)

This is a get-or-set method for the compartment's operator mask.

With no MASK argument present, it returns the current operat documentation for this module with the perldoc command.

    perldoc bignum

You can also look for information at:

=over 4

=item * GitHub

L<https://github.com/pjacklam/p5-bignum>

=item * RT: CPAN's request tracker

L<https://rt.cpan.org/Dist/Display.html?Name=bignum>

=item * MetaCPAN

L<https://metacpan.org/release/bignum>

=item * CPAN Testers Matrix

L<http://matrix.cpantesters.org/?dist=bignum>

=back

=head1 LICENSE

This program is free software; you may redistribute it and/or modify it under
the same terms as Perl itsel{$mod}[$c];
            my $ret = eval { &$code() };
            $ret = "" unless defined $ret;
            if ($@) {
                # warn "DEBUG: c[$c]\$\@[$@]ret[$ret]";
                return;
            }
        }
    }
    return $HAS_USABLE->{$mod} = 1;
}

sub frontend {
    shift;
    $CPAN::Frontend = shift if @_;
    $CPAN::Frontend;
}

sub use_inst {
    my 