Skip to content
The Perl 5 language interpreter (MIRROR ONLY) http://dev.perl.org/perl5/
Perl C XS Shell C++ Prolog Other
Find file
Failed to load latest commit information.
Cross Probe for and expose more fields for SA_SIGINFO
NetWare Probe for and expose more fields for SA_SIGINFO
Porting move Time-HiRes from cpan to dist
amigaos4 amigaos4: use the AmigaOS pager
cpan move Time-HiRes from cpan to dist
cygwin avoid a "FILE" name conflict with cygwin's wchar.h
dist move Time-HiRes from cpan to dist
djgpp Remove some remnants of x2p, which was removed by commit e5a8a0f
ext [perl #126410] keep the DESTROY cache in mro_meta
h2pl [RT #36079] Convert ` to '.
haiku Remove "register" declarations
hints bumping version
lib re/uniprops: Fix EBCDIC issue
os2 [perl #121351] Remove non-doio.c uses of PL_statbuf
plan9 Probe for and expose more fields for SA_SIGINFO
pod perldelta for 27895dd, ac3b837, f05081b, 000814d
qnx Fix typos (spelling errors) in qnx/*.
regen Use table lookup for qr/\b{wb}/
symbian Probe for and expose more fields for SA_SIGINFO
t move Time-HiRes from cpan to dist
utils Integrate podlators 4.05.
vms Do environ key case consistently on VMS.
vos Build perl using the dynamic linking capabilities of OpenVOS Release …
win32 fix a race condition in parallel builds with Visual C
.dir-locals.el Fix Emacs dir-local variables
.gitignore Add .gitignore for ext/re/ generated header file
AUTHORS add Pip Cet to AUTHORS
Artistic Expand tabs in Artistic license to spaces
Changes Change the example in the Changes file to be more generic.
Configure Probe for and expose more fields for SA_SIGINFO
Copying Update F<Copying> with the FSF's new address.
EXTERN.h Win32 parallel build fixes C++
INSTALL manual tweak
INTERN.h Win32 parallel build fixes C++
MANIFEST move Time-HiRes from cpan to dist
META.json move Time-HiRes from cpan to dist
META.yml move Time-HiRes from cpan to dist
Makefile.SH new perldelta
Makefile.micro Add time64 as its own build target.
Policy_sh.SH add shebangs where missing
README updating copyright to 2016
README.aix Start fixing some pod pedantic errors
README.amiga amigaos4: better kill() implementation
README.android README.android: make the POD a bit nicer
README.bs2000 Add note to EBCDIC README's, asking for input
README.ce fix more file paths
README.cn Converted Asian documentations to utf-8
README.cygwin Start fixing some pod pedantic errors
README.dos README.$OS URLs
README.freebsd Update README.freebsd with the new approach for making $^X absolute.
README.haiku bumping version
README.hpux Corrections to spelling and grammatical errors.
README.hurd README.foo: Change NAME to perlfoo
README.irix README.foo: Change NAME to perlfoo
README.jp Converted Asian documentations to utf-8
README.ko README.ko: remove blank line
README.linux README.foo: Change NAME to perlfoo
README.macos README.foo: Change NAME to perlfoo
README.macosx bumping version
README.micro Make the request to fix rather than report bugs in microperl politer.
README.netware fix various Pod line length warnings
README.openbsd README.foo: Change NAME to perlfoo
README.os2 bumping version
README.os390 Add note to EBCDIC README's, asking for input
README.os400 Add note to EBCDIC README's, asking for input
README.plan9 [PATCH] Doc spellcheck + podcheck
README.qnx README.qnx: Make verbatim line fit in 79 columns
README.riscos README.foo: Change NAME to perlfoo
README.solaris fix more file paths
README.symbian README.foo: Change NAME to perlfoo
README.synology README.synology: Wrap too-long verbatim line
README.tru64 tru64: Freshen the section on required process data size limits.
README.tw tweak perltw.pod for long lines (and default exports)
README.vms bumping version
README.vos Update README.vos to reflect recent changes
README.win32 add MSVC support to win32/GNUmakefile
TestInit.pm Get closure.t working under minitest
XSUB.h add assertion to prevent stack corruption in XSUB
asan_ignore asan_ignore: exclude S_expect_number()
autodoc.pl perlapi: Clarify 'string' vs. buffer
av.c Improve pod for [ah]v_(clear|undef)
av.h Replace common Emacs file-local variables with dir-locals
caretx.c move Win32's $^X code to where all other OSes' $^X code lives
cflags.SH Add the -Wthread-safety also only for clang 3.6 (6.1) or later.
charclass_invlists.h re/uniprops: Fix EBCDIC issue
config_h.SH Probe for and expose more fields for SA_SIGINFO
configpm Grab the warnflags and stdflags from cflags [perl #122694].
configure.com VMS does have the siginfo_si_* fields.
configure.gnu Remove "dead" RCS $Id$ tags from files that we own.
cop.h perlapi: Clarify that a literal string must end in a NUL
cv.h perlapi: Change some 'eg' to 'e.g.'
deb.c Cannot do much if putc fails in debug output.
doio.c Check against negative uid/gid for fchown().
doop.c make gimme consistently U8
dosish.h Replace common Emacs file-local variables with dir-locals
dquote.c toke.c: Remove soon-to-be invalid t assumption
dquote_inline.h toke.c: Remove soon-to-be invalid t assumption
dump.c Add missing break in switch.
ebcdic_tables.h Don't generate EBCDIC POSIX-BC tables
embed.fnc make gimme consistently U8
embed.h convert CX_{PUSH|POP}{WHEN|GIVEN} to inline fns
embedvar.h Add qr/\b{lb}/
fakesdio.h Replace common Emacs file-local variables with dir-locals
feature.h Make postfix dereferencing work without the postderef feature
form.h better document format code
generate_uudmap.c generate_uudmap.c: Clarify comment
globals.c Replace common Emacs file-local variables with dir-locals
globvar.sym Slightly shorten most regex patterns
gv.c Add missing break in switch.
gv.h document save_gp() and the GVf_INTRO flag
handy.h perlapi: Clarify that a literal string must end in a NUL
hv.c [perl #123788] update isa magic stash records when *ISA is deleted
hv.h [perl #126410] keep the DESTROY cache in mro_meta
hv_func.h [perl #126242] make the constant hash seeds unsigned char *
inline.h add blk_old_tmpsfloor shortcut
install_lib.pl amigaos4: install scripts
installhtml improve my rewrite of installhtml’s dir scan
installman Replace common Emacs file-local variables with dir-locals
installperl dont install PPPort.so/PPPort.dll
intrpvar.h intrvar.h: document PL_tmps_max
invlist_inline.h inline_invlist.c -> invlist_inline.h
iperlsys.h add Win32 USE_NO_REGISTRY build option
keywords.c Deparse.pm lives in lib/B now, not dist/B-Deparse
keywords.h Deparse.pm lives in lib/B now, not dist/B-Deparse
l1_char_class_tab.h Don't generate EBCDIC POSIX-BC tables
locale.c fix -DPERL_GLOBAL_STRUCT_PRIVATE builds
make_ext.pl Integrate podlators 4.05.
make_patchnum.pl reduce stderr noise in build
makedef.pl remove deprecated PL_timesbuf
makedepend.SH makedepend.SH: Split too long lines; properly join
malloc.c Give a better error if malloc.c is used without MYMALLOC
malloc_ctl.h Fix calling conventions in malloc_ctl.h
mathoms.c Various pods: Add C<> around many typed-as-is things
metaconfig.SH Remove some remnants of x2p, which was removed by commit e5a8a0f
metaconfig.h Configure syncup
mg.c mg.c: move declaration of i closer to its use
mg.h Replace common Emacs file-local variables with dir-locals
mg_names.inc mg_names.c -> mg_names.inc
mg_raw.h Remove proto magic type
mg_vtable.h Remove proto magic type
miniperlmain.c Tru64: introduce PERL_SYS_FPU_INIT, use it.
mkppport add parallel support 4 Win32 dmake building part 1
mkppport.lst move Time-HiRes from cpan to dist
mro_core.c [perl #126410] keep the DESTROY cache in mro_meta
myconfig.SH Configure: add doublekind for the format of double.
mydtrace.h Replace common Emacs file-local variables with dir-locals
nostdio.h Replace common Emacs file-local variables with dir-locals
numeric.c [perl #127474] fix operator precedence when (castflags & 2)
op.c assert(PL_parser)
op.h convert CX_PUSHEVAL/POPEVAL to inline fns
op_reg_common.h silence some gcc -pendantic warnings
opcode.h split CXt_LOOP_FOR into CXt_LOOP_LIST,CXt_LOOP_ARY
opnames.h Delete experimental autoderef feature
overload.h Add overload types for string-specifc bitops
overload.inc overload.c -> overload.inc
packsizetables.inc packsizetables.c -> packsizetables.inc
pad.c Remove find_rundefsv2
pad.h perlapi: Clarify that a literal string must end in a NUL
parser.h Replace common Emacs file-local variables with dir-locals
patchlevel.h bumping version
perl.c convert CX_PUSHEVAL/POPEVAL to inline fns
perl.h fix cx_dup for CXt_LOOP_PLAIN
perlapi.c Simplify embedvar.h, removing a level of macro indirection for PL_* v…
perlapi.h Static initialization using 1/0 or 0/0 not C89.
perldtrace.d Replace common Emacs file-local variables with dir-locals
perlio.c Fix umask for mkstemp(3) calls
perlio.h Evict PERLIO_IS_STDIO from top-level core files.
perlio.sym Purge remaining references to PerlIO_sprintf and PerlIO_vsprintf().
perliol.h remove redundant PERL_EXPORT_C and PERL_XS_EXPORT_C macros
perlsdio.h Evict PERLIO_IS_STDIO from top-level core files.
perlvars.h perlapi: Clarify process of using undocumented globals
perly.act Add support for bison 3.0
perly.c Add support for bison 3.0
perly.h Add support for bison 3.0
perly.tab Add support for bison 3.0
perly.y Add support for bison 3.0
pp.c Cast away Solaris Studio 12.3 warning.
pp.h make gimme consistently U8
pp_ctl.c remove dSP from a couple of pp_enter* fns
pp_hot.c assert(cv) before doing CvROOT(cv)
pp_pack.c make gimme consistently U8
pp_proto.h split pp_postdec() from pp_postinc() and improve
pp_sort.c make gimme consistently U8
pp_sys.c make gimme consistently U8
proto.h make gimme consistently U8
reentr.c Make the LoTR quote of reentr.c formatted more like the others.
reentr.h [perl #115928] we don't use drand48_r or random_r any longer
regcharclass.h re/uniprops: Fix EBCDIC issue
regcomp.c Assert no bad array access.
regcomp.h reverse the order of POPBLOCK; POPFOO
regcomp.sym fix perl #126186 make all verbs allow an optional arg
regen.pl Refactor t/porting/regen.t to check everything (and the return values!).
regen_perly.pl Add support for bison 3.0
regexec.c Check for invlist_search() returning negative array indices.
regexp.h Various pods: Add C<> around many typed-as-is things
regnodes.h Cleanup, document, and restructure regen/regcomp.pl
run.c Replace common Emacs file-local variables with dir-locals
runtests.SH avoid 'jobserver unavailable:' warnings
scope.c offset PL_savestack_max by SS_MAXPUSH
scope.h perlapi: Clarify that a literal string must end in a NUL
sv.c [perl #124387] call AUTOLOAD when DESTROY isn't defined
sv.h move SET_SVANY_FOR_BODYLESS_IV() from sv.c to sv.h
taint.c Replace common Emacs file-local variables with dir-locals
thread.h clang thread safety annotations
time64.c Drop useful-looking but unused lookup table.
time64.h Declaring static in header is odd (and warnable offense).
time64_config.h Make time64 use NV for time_t, I32 for year, not Quad_t.
toke.c add CX_CUR() macro
uconfig.h Probe for and expose more fields for SA_SIGINFO
uconfig.sh Probe for and expose more fields for SA_SIGINFO
uconfig64.sh Probe for and expose more fields for SA_SIGINFO
unicode_constants.h Don't generate EBCDIC POSIX-BC tables
universal.c make gimme consistently U8
unixish.h amigaos4: whitespace only
utf8.c utf8.c: Add cast to suppress a warning message
utf8.h [perl #127426] fixes for 126045 patch, restrict to MSVC, add casts
utfebcdic.h utf8.h, utfebcdic.h: Add #define
util.c util.c: fix/simplify unused arg logic in my_vsnprintf
util.h perlapi: Add some S<>
utils.lst Update Encode to CPAN version 2.70
vutil.c PATCH: [perl #121930] Bleadperl breaks MDOOTSON/Wx
vutil.h Lots of C optimizations for both speed/correctness
vxs.inc vutil.c, vxs.inc: Avoid warnings from -Wmissing-prototypes -Wundef -W…
warnings.h Remove experimental::lexical_topic warnings category
write_buildcustomize.pl fix the non-Win32 build breakage introduced in ce9582a

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.


Something went wrong with that request. Please try again.