The Perl 5 language interpreter (MIRROR ONLY)
Perl C XS Shell C++ Prolog Other
Latest commit 867a901 Sep 30, 2016 @khwilliamson khwilliamson APItest/t/utf8.t: Add some constants
Though unused now, they were convenient during some debugging, and may
be again.
Permalink
Failed to load latest commit information.
Cross bumping the version number Sep 24, 2016
NetWare bumping the version number Sep 24, 2016
Porting Porting/bench.pl: explain what PUT means Sep 27, 2016
amigaos4 amigaos4: avoid PerlIO_findFILE() in popen/plcose Mar 14, 2016
cpan Update podlators to CPAN version 4.08 Sep 27, 2016
cygwin PATCH: [perl #127708] segfault in "$!" in threads Apr 9, 2016
dist RT #116250: Fail the right number of tests on timeout Sep 29, 2016
djgpp Remove some remnants of x2p, which was removed by commit e5a8a0f Feb 18, 2015
ext APItest/t/utf8.t: Add some constants Sep 30, 2016
h2pl [RT #36079] Convert ` to '. Nov 23, 2011
haiku Remove "register" declarations Nov 25, 2012
hints macos Sierra (10.12) hints comment updates. Sep 25, 2016
lib Speed up compilation of overload.pm a smidge. Sep 28, 2016
os2 Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…") Sep 21, 2016
plan9 bumping the version number Sep 24, 2016
pod perldelta for PADOFFSET changes Sep 27, 2016
qnx Fix typos (spelling errors) in qnx/*. Jan 7, 2011
regen sassign is wrongly declared as BASEOP, not BINOP. Sep 29, 2016
symbian Add probe for gai_strerror Aug 11, 2016
t undef $0 shouldn't warn about $0 Sep 28, 2016
utils print the pop @INC to OUT instead of STDOUT Jul 29, 2016
vms new perldelta Sep 20, 2016
vos Build perl using the dynamic linking capabilities of OpenVOS Release … Nov 4, 2011
win32 bumping the version number Sep 24, 2016
.dir-locals.el Fix Emacs dir-local variables Dec 7, 2015
.gitignore gitignore for cscope index files. Mar 11, 2016
AUTHORS Fix typo in perlrun.pod Sep 21, 2016
Artistic Expand tabs in Artistic license to spaces Dec 30, 2011
Changes Change the example in the Changes file to be more generic. Jul 1, 2011
Configure Add probe for gai_strerror Aug 11, 2016
Copying Update F<Copying> with the FSF's new address. Dec 19, 2011
EXTERN.h Win32 parallel build fixes C++ Oct 27, 2015
INSTALL bumping the version number Sep 24, 2016
INTERN.h Win32 parallel build fixes C++ Oct 27, 2015
MANIFEST Update podlators to CPAN version 4.08 Sep 27, 2016
META.json bumping the version number Sep 24, 2016
META.yml bumping the version number Sep 24, 2016
Makefile.SH new perldelta Sep 20, 2016
Makefile.micro Add time64 as its own build target. Jul 22, 2015
Policy_sh.SH add shebangs where missing Sep 22, 2012
README updating copyright to 2016 Jan 20, 2016
README.aix README*: remove deprecated L<"section"> and L<section> syntax Jun 11, 2016
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 README.freebsd: Add some L<>, C<> to pod May 13, 2016
README.haiku bumping the version number Sep 24, 2016
README.hpux Fix various pod errors. Mar 11, 2016
README.hurd Fix various pod errors. Mar 11, 2016
README.irix Fix various pod errors. Mar 11, 2016
README.jp Converted Asian documentations to utf-8 Apr 14, 2013
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 bumping the version number Sep 24, 2016
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 bumping the version number Sep 24, 2016
README.os390 Fix various pod errors. Mar 11, 2016
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 Fix various pod errors. Mar 11, 2016
README.synology Update the notes on Synology/DSM Jun 12, 2016
README.tru64 Fix various pod errors. Mar 11, 2016
README.tw Remove most references to USENET from docs Jun 20, 2016
README.vms bumping the version number Sep 24, 2016
README.vos Update README.vos to reflect recent changes Mar 19, 2013
README.win32 README*: remove deprecated L<"section"> and L<section> syntax Jun 11, 2016
TestInit.pm Get closure.t working under minitest Sep 3, 2014
XSUB.h add assertion to prevent stack corruption in XSUB Oct 2, 2015
asan_ignore asan_ignore: exclude S_expect_number() Dec 31, 2014
autodoc.pl perlapi: Further clarification for term "Latin1" Mar 18, 2016
av.c fixup some AV API pod descriptions. Sep 27, 2016
av.h Imprison at_tindex_nomg() Mar 20, 2016
caretx.c move Win32's $^X code to where all other OSes' $^X code lives Dec 1, 2015
cflags.SH Pull in unnecessarily duplicated case "$opt". Jul 30, 2016
charclass_invlists.h Correct spelling errors: lib/unicore/mktables Aug 6, 2016
config_h.SH Add probe for gai_strerror Aug 11, 2016
configpm perl -V: make 'Compile-time options' one per line Jun 17, 2016
configure.com Make the "where install" directories Unix-format on VMS. Sep 5, 2016
configure.gnu Remove "dead" RCS $Id$ tags from files that we own. Dec 16, 2010
cop.h CX_POP_SAVEARRAY(): use more distinctive var name May 23, 2016
cv.h perlapi: Change some 'eg' to 'e.g.' Sep 4, 2015
deb.c Perl_deb_stack_all() - handle CXt_SUBST better Aug 25, 2016
doio.c Revert "Check against negative uid/gid for fchown()." Aug 17, 2016
doop.c Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…") Sep 21, 2016
dosish.h Add locale mutex Apr 9, 2016
dquote.c regcomp.c, toke.c: swap functions being inline static Feb 19, 2016
dquote_inline.h regcomp.c, toke.c: swap functions being inline static Feb 19, 2016
dump.c do_sv_dump(): handle CvSTART() as slab address Sep 5, 2016
ebcdic_tables.h Don't generate EBCDIC POSIX-BC tables Jan 14, 2016
embed.fnc Add is_utf8_fixed_width_buf_flags() and use it Sep 26, 2016
embed.h Add is_utf8_fixed_width_buf_flags() and use it Sep 26, 2016
embedvar.h Make PERLLIB_SEP dynamic on VMS. Sep 1, 2016
fakesdio.h Replace common Emacs file-local variables with dir-locals Mar 23, 2015
feature.h Add declared_refs feature feature Jul 17, 2016
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 Slightly shorten most regex patterns Sep 8, 2015
gv.c fix #129267: rework gv_fetchmethod_pvn_flags separator parsing Sep 13, 2016
gv.h document save_gp() and the GVf_INTRO flag Dec 17, 2015
handy.h Centralize definitions of MIN, MAX Sep 26, 2016
hv.c perlapi: Add entry for hv_bucket_ratio Jul 1, 2016
hv.h Change scalar(%hash) to be the same as 0+keys(%hash) Jun 22, 2016
hv_func.h [perl #126242] make the constant hash seeds unsigned char * Oct 13, 2015
inline.h Add is_utf8_fixed_width_buf_flags() and use it Sep 26, 2016
install_lib.pl amigaos4: install scripts Sep 5, 2015
installhtml improve my rewrite of installhtml’s dir scan Dec 8, 2015
installman installman: don't warn about missing pod Mar 1, 2016
installperl [perl #127556] update installperl to new location of W32 libperl link… Feb 18, 2016
intrpvar.h make PL_ pad vars be of type PADOFFSET Sep 26, 2016
invlist_inline.h inline_invlist.c -> invlist_inline.h Jul 22, 2015
iperlsys.h add Win32 USE_NO_REGISTRY build option Oct 11, 2015
keywords.c Deparse.pm lives in lib/B now, not dist/B-Deparse Jan 8, 2016
keywords.h Deparse.pm lives in lib/B now, not dist/B-Deparse Jan 8, 2016
l1_char_class_tab.h Stop accepting deprecated NBSP in \N{} May 9, 2016
locale.c Use new name 'is_utf8_invariant_string' in core Sep 1, 2016
make_ext.pl [perl #126710] only touch pm_to_blib if files are copied Jun 13, 2016
make_patchnum.pl reduce stderr noise in build Dec 3, 2014
makedef.pl Make PERLLIB_SEP dynamic on VMS. Sep 1, 2016
makedepend.SH (perl #128685) generate dependency rules for perlmain$(OBJ_EXT) Aug 1, 2016
malloc.c Give a better error if malloc.c is used without MYMALLOC Aug 10, 2015
malloc_ctl.h Fix calling conventions in malloc_ctl.h Oct 22, 2010
mathoms.c inline.h: Add 'const's; avoid hiding outer variable Sep 18, 2016
metaconfig.SH Remove some remnants of x2p, which was removed by commit e5a8a0f Feb 18, 2015
metaconfig.h Add probe for gai_strerror Aug 11, 2016
mg.c add some code comments for the users of delimcpy() Sep 7, 2016
mg.h Replace common Emacs file-local variables with dir-locals Mar 23, 2015
mg_names.inc mg_names.c -> mg_names.inc Jul 22, 2015
mg_raw.h Remove proto magic type Nov 30, 2014
mg_vtable.h Remove proto magic type Nov 30, 2014
miniperlmain.c better document Miniperl.pm, (mini)perlmain.c Jun 17, 2016
mkppport add parallel support 4 Win32 dmake building part 1 Sep 7, 2015
mkppport.lst move Time-HiRes from cpan to dist Feb 9, 2016
mro_core.c [perl #126410] keep the DESTROY cache in mro_meta Feb 8, 2016
myconfig.SH Remove most references to USENET from docs Jun 20, 2016
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 VAX: code changes for VAX floats Jul 2, 2016
op.c OP_SASSIGN: make op_first==op_last for UNOP Sep 29, 2016
op.h Improve code comments for some ctx stuff Mar 30, 2016
op_reg_common.h silence some gcc -pendantic warnings Jun 19, 2015
opcode.h sassign is wrongly declared as BASEOP, not BINOP. Sep 29, 2016
opnames.h add OP_ARGELEM, OP_ARGDEFELEM, OP_ARGCHECK ops Aug 3, 2016
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 Eliminate xpad_cop_seq from _xnvu union Sep 27, 2016
pad.h make PADOFFSET be SSizet_t Sep 26, 2016
parser.h parser.h: comment typo Aug 4, 2016
patchlevel.h bumping the version number Sep 24, 2016
perl.c restore comment mangled by 27da23d Sep 16, 2016
perl.h Unconditionally define memcmp() if not sane Sep 17, 2016
perlapi.c Simplify embedvar.h, removing a level of macro indirection for PL_* v… Aug 11, 2011
perlapi.h Make PERLLIB_SEP dynamic on VMS. Sep 1, 2016
perldtrace.d Replace common Emacs file-local variables with dir-locals Mar 23, 2015
perlio.c perlio.c: Fix z/OS problem Sep 8, 2016
perlio.h Evict PERLIO_IS_STDIO from top-level core files. Jul 23, 2015
perlio.sym Purge remaining references to PerlIO_sprintf and PerlIO_vsprintf(). Oct 7, 2013
perliol.h remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros Jun 3, 2015
perlsdio.h Evict PERLIO_IS_STDIO from top-level core files. Jul 23, 2015
perlvars.h Make PERLLIB_SEP dynamic on VMS. Sep 1, 2016
perly.act [perl #129073] Assert failure: ${p{};sub p}() Sep 4, 2016
perly.c sub signatures: use parser rather than lexer Aug 3, 2016
perly.h [perl #129073] Assert failure: ${p{};sub p}() Sep 4, 2016
perly.tab [perl #129073] Assert failure: ${p{};sub p}() Sep 4, 2016
perly.y [perl #129073] Assert failure: ${p{};sub p}() Sep 4, 2016
pp.c OP_AVHVSWITCH: make op_private bits 0..1 symbolic Sep 27, 2016
pp.h Unify mark macros Aug 8, 2016
pp_ctl.c pp_leaveloop(): rename local vars Sep 27, 2016
pp_hot.c sassign was used as UNOP, optimize {or,and,dor}assign Sep 29, 2016
pp_pack.c Avoid emitting pack("p",...) warning erroneously Jul 29, 2016
pp_proto.h add OP_ARGELEM, OP_ARGDEFELEM, OP_ARGCHECK ops Aug 3, 2016
pp_sort.c pp_sort.c: Missing cast Aug 10, 2016
pp_sys.c Add is_utf8_fixed_width_buf_flags() and use it Sep 26, 2016
proto.h Add is_utf8_fixed_width_buf_flags() and use it Sep 26, 2016
reentr.c Make the LoTR quote of reentr.c formatted more like the others. Jun 24, 2015
reentr.h [perl #115928] we don't use drand48_r or random_r any longer Sep 13, 2013
regcharclass.h Add macro for Unicode Corregindum #9 strict Sep 18, 2016
regcomp.c Centralize definitions of MIN, MAX Sep 26, 2016
regcomp.h regcomp.[ch]: Comments, White-space, only Jul 16, 2016
regcomp.sym Unify GOSTART and GOSUB Mar 6, 2016
regen.pl Refactor t/porting/regen.t to check everything (and the return values!). Jul 24, 2013
regen_perly.pl regen_perly.pl: Correct typo May 17, 2016
regexec.c PATCH: [perl #129038] Crash with s///l Aug 29, 2016
regexp.h Make deprecated qr//xx fatal May 9, 2016
regnodes.h Unify GOSTART and GOSUB Mar 6, 2016
run.c rename and function-ise dtrace macros Mar 18, 2016
runtests.SH avoid 'jobserver unavailable:' warnings Dec 8, 2014
scope.c add any_op field to the ANY savestack union Aug 17, 2016
scope.h leave_scope(): pop args in each branch Aug 11, 2016
sv.c undef $0 shouldn't warn about $0 Sep 28, 2016
sv.h Eliminate xpad_cop_seq from _xnvu union Sep 27, 2016
taint.c Replace common Emacs file-local variables with dir-locals Mar 23, 2015
thread.h clang thread safety annotations Nov 23, 2015
time64.c Drop useful-looking but unused lookup table. Jul 22, 2015
time64.h (perl #128359) prevent a const-ness warning on Cygwin Jun 21, 2016
time64_config.h Make time64 use NV for time_t, I32 for year, not Quad_t. Apr 25, 2009
toke.c Eliminate xpad_cop_seq from _xnvu union Sep 27, 2016
uconfig.h Add probe for gai_strerror Aug 11, 2016
uconfig.sh Add probe for gai_strerror Aug 11, 2016
uconfig64.sh Add probe for gai_strerror Aug 11, 2016
unicode_constants.h Add C macros for UTF-8 for BOM and REPLACEMENT CHARACTER Sep 1, 2016
universal.c restore Internals::hv_clear_placeholders for now Aug 25, 2016
unixish.h Add locale mutex Apr 9, 2016
utf8.c utf8.c: Add missing type specifier to declaration Sep 30, 2016
utf8.h Add API Unicode handling functions Sep 26, 2016
utfebcdic.h Add macro for Unicode Corregindum #9 strict Sep 18, 2016
util.c rename S_delimcpy() to S_delimcpy_intern() Sep 7, 2016
util.h Use memmem() if available on the platform for Perl_ninstr() May 13, 2016
utils.lst Update Encode to CPAN version 2.70 Feb 6, 2015
vutil.c Update version to 0.9916 Mar 19, 2016
vutil.h Import version.pm 0.9914 from CPAN Mar 18, 2016
vxs.inc Import version.pm 0.9914 from CPAN Mar 18, 2016
warnings.h Add experimental::declared_refs warn categ Jul 17, 2016
write_buildcustomize.pl fix the non-Win32 build breakage introduced in ce9582a Oct 28, 2015

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 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.