The Perl 5 language interpreter (MIRROR ONLY)
Perl C Objective-C Shell XS C++ Other
Switch branches/tags
Clone or download
Latest commit af28708 Jun 19, 2018
Permalink
Failed to load latest commit information.
Cross Fix Module::CoreList versions Apr 20, 2018
NetWare Revert "set PERL_EXIT_DESTRUCT_END in all embeddings" May 11, 2018
Porting Documenting epigraph Jun 19, 2018
amigaos4 make exec keep its argument list more reliably Dec 14, 2017
cpan Synch with CPAN: Archive::Tar v2.30. Jun 19, 2018
cygwin make exec keep its argument list more reliably Dec 14, 2017
dist Bump Module::CoreList Jun 19, 2018
djgpp make exec keep its argument list more reliably Dec 14, 2017
ext fix Mingw GCC C++ build errors PL_inf/PL_nan May 24, 2018
h2pl Switch most open() calls to three-argument form. Dec 23, 2016
haiku Remove "register" declarations Nov 25, 2012
hints Fix Module::CoreList versions Apr 20, 2018
lib lib/locale.t: TODO some locales on Solaris May 1, 2018
os2 Revert "set PERL_EXIT_DESTRUCT_END in all embeddings" May 11, 2018
plan9 Fix Module::CoreList versions Apr 20, 2018
pod Add new release to perlhist Jun 19, 2018
qnx Fix typos (spelling errors) in qnx/*. Jan 7, 2011
regen Document that `use v5.12` and `use feature ":5.12"` differ Apr 20, 2018
symbian Revert "set PERL_EXIT_DESTRUCT_END in all embeddings" May 11, 2018
t PATCH: [perl #133185] Infinite loop in qr// May 19, 2018
utils perlbug: Ask confirmation if would overwrite existing file Apr 15, 2018
vms Fixes for 5.28.0 May 20, 2018
vos Build perl using the dynamic linking capabilities of OpenVOS Release … Nov 4, 2011
win32 Update information on which gcc versions are supported on Windows May 24, 2018
.dir-locals.el Fix Emacs dir-local variables Dec 7, 2015
.gitignore (perl #127743) re-work recursion limit handling Feb 8, 2018
.metaconf-exclusions.txt RT#132347: fix building Tk Oct 23, 2017
.travis.yml travis.yaml: fixes for osx Nov 13, 2017
AUTHORS Spelling corrections in pod/*.pod from Alexandr Savca. Apr 19, 2018
Artistic fix typo in Artistic May 7, 2018
Changes Change the example in the Changes file to be more generic. Jul 1, 2011
Configure Add HAS_STRTOD_L to metaconfig.h and rebuild Configure Apr 19, 2018
Copying Update F<Copying> with the FSF's new address. Dec 19, 2011
EXTERN.h EXTERN.h: simplify cpp conditionals Oct 21, 2017
INSTALL Fix Module::CoreList versions Apr 20, 2018
INTERN.h Win32 parallel build fixes C++ Oct 27, 2015
MANIFEST update with perl527*delta removal May 21, 2018
META.json Update META files Jun 19, 2018
META.yml Fix Module::CoreList versions Apr 20, 2018
Makefile.SH Fixes for 5.28.0 May 20, 2018
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 Copyright years in README and perl.c. Jan 19, 2018
README.aix pods: Add L<> for links missing them; a couple nits Apr 5, 2017
README.amiga amigaos4: better kill() implementation Sep 16, 2015
README.android README.android: make the POD a bit nicer Feb 1, 2016
README.bs2000 Add note to EBCDIC README's, asking for input May 8, 2015
README.ce fix more file paths Jan 10, 2016
README.cn Converted Asian documentations to utf-8 Apr 14, 2013
README.cygwin note for detecting crypt() on Cygwin Apr 4, 2016
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 Fix Module::CoreList versions Apr 20, 2018
README.hpux Reword warning for deviations from UTF-8 locales Mar 2, 2018
README.hurd pods: Add L<> for links missing them; a couple nits Apr 5, 2017
README.irix Fix various pod errors. Mar 11, 2016
README.jp pods: Add L<> for links missing them; a couple nits Apr 5, 2017
README.ko README.ko: remove blank line Jul 5, 2013
README.linux README.foo: Change NAME to perlfoo Jul 3, 2011
README.macos README.foo: Change NAME to perlfoo Jul 3, 2011
README.macosx Fix Module::CoreList versions Apr 20, 2018
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 Fix Module::CoreList versions Apr 20, 2018
README.os390 pods: Add L<> for links missing them; a couple nits Apr 5, 2017
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 README*: remove deprecated L<"section"> and L<section> syntax Jun 11, 2016
README.symbian Actually make I18N::Langinfo avail on all platforms Mar 12, 2018
README.synology Entware released perl-5.24.1 Jun 4, 2017
README.tru64 Fix various pod errors. Mar 11, 2016
README.tw Remove most references to USENET from docs Jun 20, 2016
README.vms Fix Module::CoreList versions Apr 20, 2018
README.vos Update README.vos to reflect recent changes Mar 19, 2013
README.win32 Excessively long line made t/porting/podcheck.t unhappy. May 24, 2018
TestInit.pm stop passing '.' in @INC to tests Apr 7, 2017
XSUB.h XSUB.h: simplify cpp conditions using C89 "#elif" Oct 21, 2017
asan_ignore asan_ignore: exclude S_expect_number() Dec 31, 2014
autodoc.pl autodoc.pl: Add =encoding line Sep 10, 2017
av.c rmv/de-dup static const char array "strings" Mar 7, 2018
av.h Change av_foo_nomg() name Feb 11, 2017
caretx.c caretx.c: simplify cpp conditionals Oct 21, 2017
cflags.SH Rely on C89 <limits.h> Oct 21, 2017
charclass_invlists.h regen/mk_invlists.pl: Omit #defines Apr 20, 2018
config_h.SH Add HAS_STRTOD_L to metaconfig.h and rebuild Configure Apr 19, 2018
configpm RT #132834: prevent duplicate Config.pm vars Mar 5, 2018
configure.com Add HAS_STRTOD_L to metaconfig.h and rebuild Configure Apr 19, 2018
configure.gnu Remove "dead" RCS $Id$ tags from files that we own. Dec 16, 2010
cop.h revert smartmatch to 5.27.6 behaviour Dec 29, 2017
cv.h Add CvGvNAME_HEK helper Sep 21, 2017
deb.c Change white space to avoid C++ deprecation warning Nov 18, 2016
doio.c Revert "Revert "make PerlIO handle FD_CLOEXEC"" Jan 18, 2018
doop.c rmv/de-dup static const char array "strings" Mar 7, 2018
dosish.h add wrap_keyword_plugin function (RT #132413) Nov 11, 2017
dquote.c dquote.c: Use memchr() instead of strchr() Nov 6, 2017
dquote_inline.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
dump.c op_dump(): display PARENT of top-most node Mar 21, 2018
ebcdic_tables.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
embed.fnc Use a perfect hash for Unicode property lookups Apr 20, 2018
embed.h Use a perfect hash for Unicode property lookups Apr 20, 2018
embedvar.h Use compiled-in C structure for inverted case folds Mar 31, 2018
fakesdio.h fakesdio.h: Typo Dec 11, 2017
feature.h Enable bitwise feature with ‘use v5.28’ Dec 31, 2017
form.h better document format code May 29, 2011
generate_uudmap.c generate_uudmap.c: Clarify comment Dec 11, 2014
globals.c Replace common Emacs file-local variables with dir-locals Mar 23, 2015
globvar.sym add PL_sv_zero Jul 27, 2017
gv.c PATCH: [perl #133121] Fix crash in gv_fetchmeth_sv Apr 19, 2018
gv.h reduce cost of SvVALID() Nov 13, 2016
handy.h Remove obsolete variables Mar 31, 2018
hv.c Use memEQs, memNEs in core files Nov 6, 2017
hv.h better document macros taking literal strings Nov 12, 2017
hv_func.h More UINT64_C. Nov 29, 2017
hv_macro.h Restore "Move utility macros to their own file" Jun 1, 2017
inline.h Fixes found by coverity Apr 17, 2018
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 Replace multiple 'use vars' by 'our' in utils Nov 11, 2017
intrpvar.h Use compiled-in C structure for inverted case folds Mar 31, 2018
invlist_inline.h Use charnames inversion lists Mar 31, 2018
iperlsys.h remove broken PerlLIO_mkstemp() definition Dec 22, 2017
keywords.c revert smartmatch to 5.27.6 behaviour Dec 29, 2017
keywords.h revert smartmatch to 5.27.6 behaviour Dec 29, 2017
l1_char_class_tab.h Stop accepting deprecated NBSP in \N{} May 9, 2016
locale.c locale.c: Reorder some debugging statements Apr 18, 2018
make_ext.pl make_ext.pl: Use version.pm for version cmp Oct 30, 2017
make_patchnum.pl reduce stderr noise in build Dec 3, 2014
makedef.pl #133125 revise -DNO_MATHOM logic again in makedef.pl Apr 21, 2018
makedepend.SH makedepend.SH: omit trailing "." in progress messages Jan 2, 2017
malloc.c in malloc, compute memory sizes in size_t Dec 1, 2017
malloc_ctl.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
mathoms.c fix -DNO_MATHOMS build, mathomed syms were not removed from perldll.def Apr 15, 2018
metaconfig.SH Remove some remnants of x2p, which was removed by commit e5a8a0f Feb 18, 2015
metaconfig.h Add HAS_STRTOD_L to metaconfig.h and rebuild Configure Apr 19, 2018
mg.c mg.c: Fix isSCRIPT_RUN call Mar 2, 2018
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 fix up faulty perl embeddings Dec 21, 2017
mkppport mv Devel-PPPort from cpan to dist Oct 27, 2017
mkppport.lst Add ppport.h to IO Apr 20, 2018
mro_core.c Use memEQs, memNEs in core files Nov 6, 2017
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 numeric.c: Refactor code to use only one RESTORE Mar 2, 2018
op.c op.c: fix weird indentation Apr 19, 2018
op.h rmv/de-dup static const char array "strings" Mar 7, 2018
op_reg_common.h silence some gcc -pendantic warnings Jun 19, 2015
opcode.h Use ck_null for ~. Jan 10, 2018
opnames.h revert smartmatch to 5.27.6 behaviour Dec 29, 2017
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 Correct pad.c pod: PadARRAY, not PAD_ARRAY Jan 18, 2018
pad.h better document macros taking literal strings Nov 12, 2017
parser.h detect sub attributes following a signature Mar 2, 2018
patchlevel.h disarm RC4 bump Jun 19, 2018
perl.c revert perl_run() 0 -> 256 return mapping May 28, 2018
perl.h Finally fix C++ build with VS2017 Apr 28, 2018
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 Use compiled-in C structure for inverted case folds Mar 31, 2018
perldtrace.d Replace common Emacs file-local variables with dir-locals Mar 23, 2015
perlio.c Revert "Revert "make PerlIO handle FD_CLOEXEC"" Jan 18, 2018
perlio.h Use new paradigm for hdr file double inclusion guard Jun 2, 2017
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 Use compiled-in C structure for inverted case folds Mar 31, 2018
perly.act detect sub attributes following a signature Mar 2, 2018
perly.c perly.c: Clarify comment Feb 13, 2017
perly.h detect sub attributes following a signature Mar 2, 2018
perly.tab detect sub attributes following a signature Mar 2, 2018
perly.y detect sub attributes following a signature Mar 2, 2018
pp.c fix build failure with recent glibc May 11, 2018
pp.h paranoia: parenthesize macro parameters Jun 24, 2017
pp_ctl.c Allow goto into glob’s arg Feb 25, 2018
pp_hot.c RT#133131: pp_hot.c: deoptimise pp_iter() when non-standard OP_AND op… Apr 21, 2018
pp_pack.c (perl #131844) fix various space calculation issues in pp_pack.c Apr 16, 2018
pp_proto.h revert smartmatch to 5.27.6 behaviour Dec 29, 2017
pp_sort.c Revert "Strengthen weak refs when sorting in-place" Apr 26, 2018
pp_sys.c pp_warn: use MEXTEND rather than EXTEND Jan 31, 2018
proto.h Use a perfect hash for Unicode property lookups Apr 20, 2018
reentr.c regen/reentr.pl: simplify cpp conditionals Oct 21, 2017
reentr.h Add PERL_REENTRANT for XS modules Dec 14, 2017
regcharclass.h mktables: Add tests for t/re/unipropsFOO Apr 17, 2018
regcomp.c regcomp.c: White space only May 19, 2018
regcomp.h regcomp.h: Add comment Dec 25, 2017
regcomp.sym Spelling correction for consistency with pod/perldebguts.pod. Apr 8, 2018
regen.pl Patch unit tests to explicitly insert "." into @INC when needed. Nov 11, 2016
regen_perly.pl Replace multiple 'use vars' by 'our' in regen. Nov 11, 2017
regexec.c PATCH: [perl #133175] script run free from wrong pool panic May 9, 2018
regexp.h fixup for NO_TAINT_SUPPORT Apr 24, 2018
regnodes.h Spelling correction for consistency with pod/perldebguts.pod. Apr 8, 2018
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 revert smartmatch to 5.27.6 behaviour Dec 29, 2017
scope.h better document macros taking literal strings Nov 12, 2017
stadtx_hash.h More UINT64_C. Nov 29, 2017
sv.c Use compiled-in C structure for inverted case folds Mar 31, 2018
sv.h remove stray NULLOK/NN from apidoc directives Dec 6, 2017
taint.c semicolon-friendly diagnostic control Dec 16, 2017
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 PATCH: [perl #133074] 5.26.1: some coverity fixes Apr 8, 2018
uconfig.h Regen, again Apr 20, 2018
uconfig.sh Fix Module::CoreList versions Apr 20, 2018
uconfig64.sh Fix Module::CoreList versions Apr 20, 2018
uni_keywords.h regen/mk_invlists.pl: Omit #defines Apr 20, 2018
unicode_constants.h regen/unicode_constants.pl: Add U+10FFFF entry Nov 19, 2017
universal.c revert smartmatch to 5.27.6 behaviour Dec 29, 2017
unixish.h add wrap_keyword_plugin function (RT #132413) Nov 11, 2017
utf8.c PATCH: [perl # 133179] heap-buffer-overflow write May 19, 2018
utf8.h utf8.h: Add in #define for backcompat Feb 20, 2018
utfebcdic.h utf8n_to_uvchr() Properly test for extended UTF-8 Jul 13, 2017
util.c util.c: Fix typo in comment Feb 8, 2018
util.h use Perl_my_mkstemp() where appropriate Dec 22, 2017
utils.lst Remove utils/c2ph and utils/pstruct Jan 16, 2017
vutil.c Synch cpan/version/* and other files with CPAN version 0.9923. Apr 16, 2018
vutil.h Synch cpan/version/* and other files with CPAN version 0.9921. Apr 12, 2018
vxs.inc Synch cpan/version/* and other files with CPAN version 0.9921. Apr 12, 2018
warnings.h Add 'alpha_assertions' warnings category Feb 19, 2018
write_buildcustomize.pl fix the non-Win32 build breakage introduced in ce9582a Oct 28, 2015
zaphod32_hash.h silence warnings when using zaphod32 on 64 bit builds Feb 24, 2018

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 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 http://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
http://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.