Skip to content
🐫The Perl 5 language interpreter.
Perl C Shell XS C++ Perl 6 Other
Branch: blead
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Enable smoke-testing on all branches Dec 10, 2019
Cross Regenerate Configure and friends after metaconfig changes Dec 3, 2019
NetWare Regenerate Configure and friends after metaconfig changes Dec 3, 2019
Porting Update IO-Compress to CPAN version 2.093 Dec 7, 2019
amigaos4 make exec keep its argument list more reliably Dec 14, 2017
cpan Update IO-Compress to CPAN version 2.093 Dec 7, 2019
cygwin Convert issue links from rt.perl.org to GitHub Nov 27, 2019
dist IO: update the ChangeLog after a (trial) release of IO to CPAN Dec 12, 2019
djgpp make exec keep its argument list more reliably Dec 14, 2017
ext un-TODO pl_check.t and remove io/handle.t Dec 12, 2019
h2pl Switch most open() calls to three-argument form. Dec 23, 2016
haiku Remove "register" declarations Nov 25, 2012
hints Fix where we look for the Sun/Solaris/Developer Studio compiler Dec 11, 2019
lib Add the `isa` operator Dec 9, 2019
os2 Use sv_catpvs where appropriate vs sv_catpv Aug 6, 2018
plan9 Regenerate Configure and friends after metaconfig changes Dec 3, 2019
pod perldelta for a559786 Dec 12, 2019
qnx Fix typos (spelling errors) in qnx/*. Jan 7, 2011
regen Move PL_check to the interp vars to fix threading issues Dec 12, 2019
symbian Regenerate Configure and friends after metaconfig changes Dec 3, 2019
t un-TODO pl_check.t and remove io/handle.t Dec 12, 2019
utils Convert issue links from rt.perl.org to GitHub Nov 27, 2019
vms new perldelta for v5.31.7 Nov 20, 2019
vos Build perl using the dynamic linking capabilities of OpenVOS Release … Nov 4, 2011
win32 Regenerate Configure and friends after metaconfig changes Dec 3, 2019
.dir-locals.el Fix Emacs dir-local variables Dec 7, 2015
.git_patch add git commit info into archive exports to allow building outside git Oct 23, 2019
.gitattributes add git commit info into archive exports to allow building outside git Oct 23, 2019
.gitignore Remove lib/unicore/Heavy.pl Nov 7, 2019
.lgtm.yml lgtm.yml: fix erroneous inclusion Nov 21, 2018
.metaconf-exclusions.txt Rely on C89 "const" Nov 27, 2018
.travis.yml fix Github URL in message posted to #p5p-qa Dec 8, 2019
AUTHORS Correct inconsistent version numbers in English.pm Dec 4, 2019
Artistic fix typo in Artistic May 7, 2018
Changes Update documentation, comments, metadata to reference GitHub as canon… Oct 20, 2019
Configure Regenerate Configure and friends after metaconfig changes Dec 3, 2019
Copying Update F<Copying> with the FSF's new address. Dec 19, 2011
EXTERN.h The Windows CE Chainsaw Massacre Jun 18, 2019
INSTALL Bump the perl version in various places for 5.31.7 Nov 20, 2019
INTERN.h remove all exported symbols from GCC win32 miniperl Jul 24, 2018
MANIFEST provide a test for the PL_check mis-behaviour Dec 12, 2019
META.json Regenerate META: Nov 25, 2019
META.yml Regenerate META: Nov 25, 2019
Makefile.SH new perldelta for v5.31.7 Nov 20, 2019
Makefile.micro Don't attempt to define or use STANDARD_C Oct 21, 2017
PACKAGING Time::HiRes disable a flapping test for CI Nov 14, 2017
Policy_sh.SH add shebangs where missing Sep 22, 2012
README Update URLs to be https:// Oct 25, 2019
README.aix fix typos Oct 9, 2018
README.amiga amigaos4: better kill() implementation Sep 16, 2015
README.android Mention Termux in README.android Oct 30, 2019
README.bs2000 Update p5p list archive links Oct 13, 2019
README.cn README.cn: Fix pod errors Sep 9, 2019
README.cygwin Update the installation URL for Cygwin Oct 11, 2019
README.dos README.$OS URLs Apr 1, 2007
README.freebsd pods: Add L<> for links missing them; a couple nits Apr 5, 2017
README.haiku Bump the perl version in various places for 5.31.7 Nov 20, 2019
README.hpux PA-RISC is obsolted Aug 8, 2018
README.hurd Move more URLs from http:// to https:// Oct 11, 2019
README.irix Fix various pod errors. Mar 11, 2016
README.jp update perljp Oct 24, 2019
README.ko Revise URLs in README.ko Sep 9, 2019
README.linux README.foo: Change NAME to perlfoo Jul 3, 2011
README.macos README.foo: Change NAME to perlfoo Jul 3, 2011
README.macosx Bump the perl version in various places for 5.31.7 Nov 20, 2019
README.micro Make the request to fix rather than report bugs in microperl politer. Mar 28, 2011
README.netware Fix various pod errors. Mar 11, 2016
README.openbsd README.foo: Change NAME to perlfoo Jul 3, 2011
README.os2 Bump the perl version in various places for 5.31.7 Nov 20, 2019
README.os390 Bump the perl version in various places for 5.31.7 Nov 20, 2019
README.os400 Add note to EBCDIC README's, asking for input May 8, 2015
README.plan9 [PATCH] Doc spellcheck + podcheck Nov 16, 2001
README.qnx README.qnx: Make verbatim line fit in 79 columns Feb 2, 2014
README.riscos README.foo: Change NAME to perlfoo Jul 3, 2011
README.solaris fix typos Oct 9, 2018
README.symbian Actually make I18N::Langinfo avail on all platforms Mar 12, 2018
README.synology More documentation links http -> https Oct 11, 2019
README.tru64 Fix various pod errors. Mar 11, 2016
README.tw Replace a few http urls with https Sep 9, 2019
README.vms Bump the perl version in various places for 5.31.7 Nov 20, 2019
README.vos Update README.vos to reflect recent changes Mar 19, 2013
README.win32 The VC6 Chainsaw Massacre Oct 17, 2019
SECURITY.md Add GitHub security template Oct 20, 2019
TestInit.pm Mailling list archaeology, restoring old content Oct 11, 2019
XSUB.h perlapi: Document XST_mUV Sep 3, 2019
asan_ignore asan_ignore: Explicitly list ignored behavior fcns May 24, 2019
autodoc.pl autodoc.pl: Catch more errors Nov 30, 2019
av.c Add some defensive coding to av_store() Jun 27, 2019
av.h Note that AvFILLp is not for public use Sep 3, 2019
caretx.c RT#133573: $^X fallback when platform-specific technique fails Oct 9, 2018
cflags.SH Adapt Configure to GCC version 10 Nov 12, 2019
charclass_invlists.h PATCH GH #17025 \p{user-defined} overrides official Unicode Dec 9, 2019
config_h.SH Regenerate Configure and friends after metaconfig changes Dec 3, 2019
configpm Update documentation, comments, metadata to reference GitHub as canon… Oct 20, 2019
configure.com Regenerate Configure and friends after metaconfig changes Dec 3, 2019
configure.gnu Remove "dead" RCS $Id$ tags from files that we own. Dec 16, 2010
cop.h Faster feature checks Oct 30, 2019
cv.h Add embed.fnc entries for Cv inline fcns Sep 15, 2019
deb.c Change white space to avoid C++ deprecation warning Nov 18, 2016
doio.c (perl #134221) support append mode for open .. undef Jul 16, 2019
doop.c Clean up -Dy debugging Nov 18, 2019
dosish.h The Windows CE Chainsaw Massacre Jun 18, 2019
dquote.c PATCH: [perl #133937] Assertion failure Mar 19, 2019
dquote_inline.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
dump.c Reimplement tr/// without swashes Nov 7, 2019
ebcdic_tables.h regen/ebcdic.pl: Fix bug in decoding some high code points Dec 7, 2019
embed.fnc Rmv leading underscore from macro name Dec 11, 2019
embed.h Rmv leading underscore from macro name Dec 11, 2019
embedvar.h Move PL_check to the interp vars to fix threading issues Dec 12, 2019
fakesdio.h fakesdio.h: Typo Dec 11, 2017
feature.h Add the `isa` operator Dec 9, 2019
form.h better document format code May 29, 2011
generate_uudmap.c generate_uudmap.c: Clarify comment Dec 11, 2014
globals.c regcomp.c: don't include INTERN.h Feb 19, 2019
globvar.sym Move PL_check to the interp vars to fix threading issues Dec 12, 2019
gv.c Add the `isa` operator Dec 9, 2019
gv.h reduce cost of SvVALID() Nov 13, 2016
handy.h handy.h: Fix typo in little-used macro Dec 7, 2019
hv.c Fix: local variable hiding parameter of same name Nov 12, 2019
hv.h Change pod for macros that require "literal strings" Sep 3, 2019
hv_func.h fix the name shown in PERL_HASH_SEED_DEBUG for stadtx Apr 23, 2019
hv_macro.h add defensive parens Nov 5, 2019
inline.h The VC6 Chainsaw Massacre Oct 17, 2019
install_lib.pl amigaos4: install scripts Sep 5, 2015
installhtml clean up directories of split pod files Dec 15, 2017
installman fix spelling Nov 19, 2017
installperl (perl #127606) adjust dependency paths on installation on darwin Nov 1, 2018
intrpvar.h Move PL_check to the interp vars to fix threading issues Dec 12, 2019
invlist_inline.h PATCH: gh #17275 Silence new warning Nov 22, 2019
iperlsys.h add explicit 1-arg and 3-arg sig handler functions Nov 18, 2019
keywords.c Add the `isa` operator Dec 9, 2019
keywords.h Add the `isa` operator Dec 9, 2019
l1_char_class_tab.h l1_char_class_tab.h: Remove some special EBCDIC cases Oct 9, 2019
locale.c locale.c: Use proper #ifdef to enable behavior Nov 30, 2019
make_ext.pl Make sure 'if' compiled before Pod::Simple May 27, 2019
make_patchnum.pl add git commit info into archive exports to allow building outside git Oct 23, 2019
makedef.pl The VC6 Chainsaw Massacre Oct 17, 2019
makedepend.SH makedepend.SH: omit trailing "." in progress messages Jan 2, 2017
malloc.c malloc.c: Use isDIGIT macro instead of hand-rolling it Nov 12, 2019
malloc_ctl.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
mathoms.c mathoms.c,utf8.c: Update to use UTF8_CHK_SKIP Nov 3, 2019
metaconfig.SH Remove some remnants of x2p, which was removed by commit e5a8a0f Feb 18, 2015
metaconfig.h metaconfig.h: Add entry for wcrtomb() Dec 3, 2019
mg.c updates to $^H{feature_validname} now update cop_features Dec 4, 2019
mg.h Replace common Emacs file-local variables with dir-locals Mar 23, 2015
mg_names.inc ‘Nonelems’ for pushing sparse array on the stack Feb 19, 2018
mg_raw.h ‘Nonelems’ for pushing sparse array on the stack Feb 19, 2018
mg_vtable.h ‘Nonelems’ for pushing sparse array on the stack Feb 19, 2018
miniperlmain.c get MakeMaker to play under PERL_GLOBAL_STRUCT Feb 19, 2019
mkppport mv Devel-PPPort from cpan to dist Oct 27, 2017
mkppport.lst remove distros from needing ppport.h in core Jul 26, 2018
mro_core.c Fix: local variable hiding parameter of same name Nov 12, 2019
myconfig.SH Add "default_inc_excludes_dot" to "perl -V" output Feb 26, 2017
mydtrace.h rename and function-ise dtrace macros Mar 18, 2016
nostdio.h Replace common Emacs file-local variables with dir-locals Mar 23, 2015
numeric.c Fix wrong apidoc line Nov 30, 2019
op.c Add the `isa` operator Dec 9, 2019
op.h Reimplement tr/// without swashes Nov 7, 2019
op_reg_common.h silence some gcc -pendantic warnings Jun 19, 2015
opcode.h Move PL_check to the interp vars to fix threading issues Dec 12, 2019
opnames.h Add the `isa` operator Dec 9, 2019
overload.h Add overload types for string-specifc bitops Feb 1, 2015
overload.inc overload.c -> overload.inc Jul 22, 2015
packsizetables.inc packsizetables.c -> packsizetables.inc Jul 22, 2015
pad.c Fully spell out "subroutine" and "variable" Oct 21, 2019
pad.h Change pod for macros that require "literal strings" Sep 3, 2019
parser.h Signatures: change param count from IV to UV Sep 23, 2019
patchlevel.h Bump the perl version in various places for 5.31.7 Nov 20, 2019
perl.c Move PL_check to the interp vars to fix threading issues Dec 12, 2019
perl.h declare perl core's sig handler as 1-arg Nov 18, 2019
perl_inc_macro.h Fix Windows build failure introduced by 7d00a34 Nov 14, 2017
perl_langinfo.h perl_langinfo.h: Fix typo in comment Mar 12, 2018
perlapi.c Simplify embedvar.h, removing a level of macro indirection for PL_* v… Aug 11, 2011
perlapi.h Move PL_check to the interp vars to fix threading issues Dec 12, 2019
perldtrace.d Replace common Emacs file-local variables with dir-locals Mar 23, 2015
perlio.c Local variable 'imode' hides a parameter of the same name Dec 5, 2019
perlio.h (perl #134221) support append mode for open .. undef Jul 16, 2019
perlio.sym Purge remaining references to PerlIO_sprintf and PerlIO_vsprintf(). Oct 7, 2013
perliol.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
perlsdio.h Evict PERLIO_IS_STDIO from top-level core files. Jul 23, 2015
perlvars.h Move PL_check to the interp vars to fix threading issues Dec 12, 2019
perly.act put signature ops in their own subtree. Sep 23, 2019
perly.c perly.c: Fix typo in comment Apr 29, 2019
perly.h put signature ops in their own subtree. Sep 23, 2019
perly.tab put signature ops in their own subtree. Sep 23, 2019
perly.y put signature ops in their own subtree. Sep 23, 2019
pp.c Add the `isa` operator Dec 9, 2019
pp.h inline.h: Change fcn name prefix from S_ to Perl_ Sep 15, 2019
pp_ctl.c clean up quadmath_format_*() functions Nov 17, 2019
pp_hot.c Create fcn for lossless conversion of NV to IV May 24, 2019
pp_pack.c pp_pack.c: Use safe UTF8SKIP Mar 19, 2019
pp_proto.h Add the `isa` operator Dec 9, 2019
pp_sort.c perlapi: sortsv_flags is an SV function Aug 9, 2019
pp_sys.c (perl #134291) propagate non-PVs in $@ in bare die() Jul 22, 2019
proto.h Rmv leading underscore from macro name Dec 11, 2019
reentr.c regen/reentr.pl: simplify cpp conditionals Oct 21, 2017
reentr.h Add PERL_REENTRANT for XS modules Dec 14, 2017
regcharclass.h PATCH GH #17025 \p{user-defined} overrides official Unicode Dec 9, 2019
regcomp.c Only allow punct delimiter for regex subpattern Dec 11, 2019
regcomp.h Move data for PL_InBitmap to charclass_invlists.h Nov 27, 2019
regcomp.sym regcomp.sym: Add comment Nov 22, 2019
regen.pl Patch unit tests to explicitly insert "." into @inc when needed. Nov 11, 2016
regen_perly.pl Support Bison version 3.1 through 3.4 Jul 11, 2019
regexec.c regexec.c: Clarify comment Dec 11, 2019
regexp.h inline.h: Change fcn name prefix from S_ to Perl_ Sep 15, 2019
regnodes.h regcomp.sym: Simplify a couple regnode defns Nov 22, 2019
run.c rename and function-ise dtrace macros Mar 18, 2016
runtests.SH avoid 'jobserver unavailable:' warnings Dec 8, 2014
sbox32_hash.h actually fix "implicit fallthrough" warnings in gcc 7 Oct 14, 2017
scope.c Faster feature checks Oct 30, 2019
scope.h Change pod for macros that require "literal strings" Sep 3, 2019
stadtx_hash.h Clean up U8TO*_LE macro implementations Oct 7, 2019
sv.c Move PL_check to the interp vars to fix threading issues Dec 12, 2019
sv.h Double the number of possible SV types Nov 16, 2019
taint.c Add some comments around tainting May 24, 2019
thread.h thread.h: simplify cpp conditionals Oct 21, 2017
time64.c A few small tweaks in time64.c Nov 29, 2016
time64.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
time64_config.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
toke.c Rmv leading underscore from macro name Dec 11, 2019
uconfig.h Regenerate Configure and friends after metaconfig changes Dec 3, 2019
uconfig.sh Regenerate Configure and friends after metaconfig changes Dec 3, 2019
uconfig64.sh Regenerate Configure and friends after metaconfig changes Dec 3, 2019
uni_keywords.h PATCH GH #17025 \p{user-defined} overrides official Unicode Dec 9, 2019
unicode_constants.h Fix apidoc macro entries Jun 25, 2019
universal.c Clarify in documentation that sv_isa_sv does not invoke magic Dec 11, 2019
unixish.h Add mutex for dealing with qr/\p{user-defined}/ Feb 15, 2019
utf8.c autodoc.pl: Catch more errors Nov 30, 2019
utf8.h Fix UTF8_IS_START on EBCDIC Dec 7, 2019
utfebcdic.h utfebcdic.h: Add comments Nov 12, 2019
util.c Move PL_check to the interp vars to fix threading issues Dec 12, 2019
util.h The VC6 Chainsaw Massacre Oct 17, 2019
utils.lst Update IO-Compress to CPAN version 2.089 Nov 6, 2019
vutil.c ensure locale_name_on_entry isn't clobbered Oct 24, 2019
vutil.h Synch cpan/version/* and other files with CPAN version 0.9921. Apr 12, 2018
vxs.inc move the implementation of %-, %+ into core Dec 4, 2019
warnings.h Add the `isa` operator Dec 9, 2019
write_buildcustomize.pl Fix builds after EUMM update Jun 4, 2019
zaphod32_hash.h Clean up U8TO*_LE macro implementations Oct 7, 2019

README

Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
2013, 2014, 2015, 2016, 2017, 2018, 2019 by Larry Wall and others.
All rights reserved.



ABOUT PERL
==========

Perl is a general-purpose programming language originally developed for
text manipulation and now used for a wide range of tasks including
system administration, web development, network programming, GUI
development, and more.

The language is intended to be practical (easy to use, efficient,
complete) rather than beautiful (tiny, elegant, minimal).  Its major
features are that it's easy to use, supports both procedural and
object-oriented (OO) programming, has powerful built-in support for text
processing, and has one of the world's most impressive collections of
third-party modules.

For an introduction to the language's features, see pod/perlintro.pod.

For a discussion of the important changes in this release, see
pod/perldelta.pod.

There are also many Perl books available, covering a wide variety of topics,
from various publishers.  See pod/perlbook.pod for more information.


INSTALLATION
============

If you're using a relatively modern operating system and want to
install this version of Perl locally, run the following commands:

  ./Configure -des -Dprefix=$HOME/localperl
  make test
  make install

This will configure and compile perl for your platform, run the regression
tests, and install perl in a subdirectory "localperl" of your home directory.

If you run into any trouble whatsoever or you need to install a customized
version of Perl, you should read the detailed instructions in the "INSTALL"
file that came with this distribution.  Additionally, there are a number of
"README" files with hints and tips about building and using Perl on a wide
variety of platforms, some more common than others.

Once you have Perl installed, a wealth of documentation is available to you
through the 'perldoc' tool.  To get started, run this command:

  perldoc perl


IF YOU RUN INTO TROUBLE
=======================

Perl is a large and complex system that's used for everything from
knitting to rocket science.  If you run into trouble, it's quite
likely that someone else has already solved the problem you're
facing. Once you've exhausted the documentation, please report bugs to us
using the 'perlbug' tool. For more information about perlbug, either type
'perldoc perlbug' or just 'perlbug' on a line by itself.

While it was current when we made it available, Perl is constantly evolving
and there may be a more recent version that fixes bugs you've run into or
adds new features that you might find useful.

You can always find the latest version of perl on a CPAN (Comprehensive Perl
Archive Network) site near you at https://www.cpan.org/src/

If you want to submit a simple patch to the perl source, see the "SUPER
QUICK PATCH GUIDE" in pod/perlhack.pod.

Just a personal note:  I want you to know that I create nice things like this
because it pleases the Author of my story.  If this bothers you, then your
notion of Authorship needs some revision.  But you can use perl anyway. :-)

							The author.


LICENSING
=========

This program is free software; you can redistribute it and/or modify
it under the terms of either:

	a) the GNU General Public License as published by the Free
	Software Foundation; either version 1, or (at your option) any
	later version, or

	b) the "Artistic License" which comes with this Kit.

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.  See either
the GNU General Public License or the Artistic License for more details.

You should have received a copy of the Artistic License with this
Kit, in the file named "Artistic".  If not, I'll be glad to provide one.

You should also have received a copy of the GNU General Public License
along with this program in the file named "Copying". If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA or visit their web page on the internet at
https://www.gnu.org/copyleft/gpl.html.

For those of you that choose to use the GNU General Public License,
my interpretation of the GNU General Public License is that no Perl
script falls under the terms of the GPL unless you explicitly put
said script under the terms of the GPL yourself.  Furthermore, any
object code linked with perl does not automatically fall under the
terms of the GPL, provided such object code only adds definitions
of subroutines and variables, and does not otherwise impair the
resulting interpreter from executing any standard Perl script.  I
consider linking in C subroutines in this manner to be the moral
equivalent of defining subroutines in the Perl language itself.  You
may sell such an object file as proprietary provided that you provide
or offer to provide the Perl source, as specified by the GNU General
Public License.  (This is merely an alternate way of specifying input
to the program.)  You may also sell a binary produced by the dumping of
a running Perl script that belongs to you, provided that you provide or
offer to provide the Perl source as specified by the GPL.  (The
fact that a Perl interpreter and your code are in the same binary file
is, in this case, a form of mere aggregation.)  This is my interpretation
of the GPL.  If you still have concerns or difficulties understanding
my intent, feel free to contact me.  Of course, the Artistic License
spells all this out for your protection, so you may prefer to use that.


You can’t perform that action at this time.