1
0
Fork 0
mirror of https://github.com/Perl/perl5.git synced 2025-12-05 22:37:26 +00:00
🐪 The Perl programming language
Find a file
2025-12-05 20:28:38 +00:00
.github update github irc notification action 2025-09-29 20:36:55 +02:00
amigaos4 Fix typos 2025-10-16 07:20:38 +02:00
cpan cpan/Term-Table - Update to version 0.028 2025-11-28 08:45:43 -05:00
Cross Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
cygwin Use ck_warner() more 2025-03-20 15:20:56 +00:00
dist Prepare Module::CoreList for 5.43.6 2025-11-20 08:10:50 +01:00
ext make pregexec() handle zero-length strings again 2025-12-04 18:40:52 +00:00
h2pl Switch most open() calls to three-argument form. 2016-12-23 13:52:28 -05:00
haiku Remove use of dVAR in core 2020-07-20 23:28:13 +01:00
hints Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
lib Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
os2 Use ck_warner() more 2025-03-20 15:20:56 +00:00
os390 Allow z/OS to work in either EBCDIC or ASCII mode 2025-09-17 14:34:41 -06:00
plan9 Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
pod Fix spelling of 'unrecognised' to en_US version 2025-12-05 20:28:38 +00:00
Porting cpan/Term-Table - Update to version 0.028 2025-11-28 08:45:43 -05:00
qnx style: Detabify indentation of the C code maintained by the core. 2021-01-17 09:18:15 -07:00
regen Add "magical" chars to l1_char_class_tab.h 2025-11-01 20:40:00 -06:00
t Fix spelling of 'unrecognised' to en_US version 2025-12-05 20:28:38 +00:00
utils Remove period from end of abstract (subject) 2025-12-03 13:23:06 -05:00
vms Archive perldelta 5.43.5 2025-11-20 07:31:17 +01:00
vos
win32 Revert "win32/perllib.c: Omit unused formal parameter name" 2025-11-26 10:05:45 -07:00
.dir-locals.el Fix Emacs dir-local variables 2015-12-07 20:13:08 +00:00
.editorconfig Set .editorconfig for .xs files and add modeline to APItest.xs 2025-09-23 13:43:47 +01:00
.git_patch Add describe (patchlevel) to .git_patch and read it from make_patchnum.pl 2025-02-10 10:09:59 +01:00
.gitattributes .gitattributes: *.inc recognized as Pawn 2025-10-08 17:57:38 -06:00
.gitignore Makefile.SH: Regen makedependfile when makedependfile.SH changed 2025-07-16 12:26:58 -06:00
.mailmap Update email address of Yitzchak Scott-Thoennes 2025-11-09 11:56:26 -07:00
.metaconf-exclusions.txt Rely on C89 "const" 2018-11-27 11:43:22 +00:00
Artistic fix typo in Artistic 2018-05-07 17:44:02 +01:00
asan_ignore asan_ignore: Explicitly list ignored behavior fcns 2019-05-24 17:09:30 -06:00
AUTHORS Fix typos 2025-10-16 07:20:38 +02:00
autodoc.pl regen/embed.pl: Add ability to assert(s < e) 2025-10-12 13:57:56 -06:00
av.c Perl_av_make - use newSVsv_flags rather than newSV + sv_setsv_flags 2025-08-23 17:44:29 +01:00
av.h perlapi: newAV() fix typo 2025-09-18 22:49:10 -06:00
builtin.c Stop calling Perl_*warn*() manually in core 2025-03-19 06:37:08 +01:00
caretx.c Convert RT ticket reference to GH 2025-07-28 19:54:24 -04:00
cflags.SH cflags.SH: don't try to add both -Wextra and -W 2025-03-03 11:42:27 +01:00
Changes Update documentation, comments, metadata to reference GitHub as canonical repository (#1186) 2019-10-20 18:47:10 +02:00
charclass_invlists.inc Add "magical" chars to l1_char_class_tab.h 2025-11-01 20:40:00 -06:00
class.c Fix spelling of 'unrecognised' to en_US version 2025-12-05 20:28:38 +00:00
CODE_OF_CONDUCT.md Add top-level Code of Conduct document 2021-08-17 09:09:19 -04:00
config_h.SH Introduce I_STDCKDINT config macro 2025-09-16 13:55:31 -06:00
configpm remove indirect calls to import() method 2025-03-15 09:49:42 +01:00
Configure Configure: check usability of <stdckdint.h>, not only its existence 2025-09-21 06:51:10 -06:00
configure.com Introduce I_STDCKDINT config macro 2025-09-16 13:55:31 -06:00
configure.gnu
cop.h class.c. Convert _nOnclAshIngNamE_ to legal name 2025-09-01 08:11:58 -06:00
Copying Update copies of GPL to match recent FSF changes 2025-05-02 23:35:09 +02:00
cv.h Convert _XPVCV_HEAD to legal name 2025-09-01 08:12:39 -06:00
deb.c perlapi: Improve wording of plain/nocontext entries 2025-09-24 07:26:51 -06:00
doio.c Restructure handling extra statbuf flags on z/OS 2025-09-17 14:34:41 -06:00
doop.c Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
dosish.h Employ PL_shutdownhook 2024-09-30 22:52:06 +02:00
dquote.c Stop calling Perl_*warn*() manually in core 2025-03-19 06:37:08 +01:00
dump.c op_dump(): display names of variables for pad ops. 2025-11-13 07:35:26 +00:00
ebcdic_tables.h regen/ebcdic.pl: Use INIT() for ebcdic_tables.h 2025-10-06 08:20:03 -06:00
embed.fnc make pregexec() handle zero-length strings again 2025-12-04 18:40:52 +00:00
embed.h Remove some special EBCDIC code 2025-11-01 21:02:37 -06:00
embedvar.h Make sure mathoms gets loaded 2025-07-28 11:40:28 -06:00
EXTERN.h Document things in EXTERN.h, INTERN.h 2025-09-28 11:09:26 -06:00
fakesdio.h fakesdio.h: Use legal macro name 2025-10-14 09:37:20 -06:00
feature.h Rename the 'any' and 'all' features and experimental warnings to 'keyword_any' and 'keyword_all' 2025-03-14 15:54:13 +00:00
form.h
generate_uudmap.c style: Detabify indentation of the C code maintained by the core. 2021-01-17 09:18:15 -07:00
globals.c If we have thread local storage, use it instead of posix_getspecific(). 2021-09-07 15:46:16 +10:00
globvar.sym remove unused PL_no_mem symbol 2023-12-13 07:07:29 +01:00
gv.c Avoid redefining SvREADONLY_on in gv.c as that causes confusion 2025-11-06 00:33:14 +00:00
gv.h gv.h: Convert _gvname_hek to legal name 2025-09-01 08:12:12 -06:00
handy.h Revert "handy.h: Add void * casts to memEQ, memNE" 2025-12-04 13:22:25 -07:00
hv.c hv.c: Use SvIsUV instead of SvUOK in the block where SvIOK holds true. 2025-11-20 12:03:01 -07:00
hv.h hv.h: Slight simplification of hv_fetch() macro 2025-10-07 18:53:56 -06:00
hv_func.h Do not cast away constness 2022-12-13 12:59:04 +00:00
hv_macro.h hv_macro.h. Convert _shifted_octet to legal name 2025-09-01 08:11:58 -06:00
inline.h Remove some special EBCDIC code 2025-11-01 21:02:37 -06:00
INSTALL Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
install_lib.pl Remove DOS/DJGPP support 2021-11-02 18:01:42 +00:00
installhtml installhtml: set default podpath to './lib' 2021-09-11 13:30:47 +00:00
installman Remove AT&T UWIN support 2021-11-02 18:01:42 +00:00
installperl Restructure handling extra statbuf flags on z/OS 2025-09-17 14:34:41 -06:00
INTERN.h Document things in EXTERN.h, INTERN.h 2025-09-28 11:09:26 -06:00
intrpvar.h Reapply "Attempt to remove deprecated sv_locking/unlocking" 2025-07-28 11:40:28 -06:00
invlist_inline.h Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
iperlsys.h Restructure handling extra statbuf flags on z/OS 2025-09-17 14:34:41 -06:00
keywords.c [regen/keywords] Order keywords alphabetically 2025-09-22 11:29:16 +02:00
keywords.h [regen/keywords] Order keywords alphabetically 2025-09-22 11:29:16 +02:00
l1_char_class_tab.h Add "magical" chars to l1_char_class_tab.h 2025-11-01 20:40:00 -06:00
locale.c locale.c: Initialize variable to silence compiler 2025-11-04 10:38:29 -07:00
locale_table.h regen/locale.pl: Use 'USE_LOCALE" not 'NO_LOCALE' 2025-07-22 09:52:18 -06:00
make_ext.pl win32: remove makefile.mk (#18511) 2021-01-28 12:49:52 +00:00
make_patchnum.pl Add describe (patchlevel) to .git_patch and read it from make_patchnum.pl 2025-02-10 10:09:59 +01:00
makedef.pl makedef.pl: Eliminate need for embed.fnc sync 2025-10-21 18:58:48 -06:00
makedepend.SH WIP: Run makedepend in parallel by using make 2021-08-11 10:01:16 -06:00
makedependfile.SH makedepend_file.SH: Add some sed edits for z/OS 2025-09-15 18:13:40 -06:00
Makefile.SH Archive perldelta 5.43.5 2025-11-20 07:31:17 +01:00
malloc.c Stop calling Perl_*warn*() manually in core 2025-03-19 06:37:08 +01:00
malloc_ctl.h Use new paradigm for hdr file double inclusion guard 2017-06-02 12:47:18 -06:00
MANIFEST Archive perldelta 5.43.5 2025-11-20 07:31:17 +01:00
mathoms.c Use valid_utf8_to_uv() consistently in core 2025-09-01 07:49:14 -06:00
META.json Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
META.yml Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
metaconfig.h Commit ddfa1d4526 requires ptrdiff_t 2025-05-14 14:34:26 +02:00
metaconfig.SH Fix typos 2020-10-03 10:40:40 -04:00
mg.c don't warn on 'undef $^W' 2025-11-13 07:36:37 +00:00
mg.h Nuke the MGf_PERSIST flag, freeing a bit in ->mg_flags 2025-03-31 12:44:36 +01:00
mg_names.inc fix incorrect vi filetype declarations in generated files 2023-03-24 06:10:05 +08:00
mg_raw.h fix incorrect vi filetype declarations in generated files 2023-03-24 06:10:05 +08:00
mg_vtable.h mg_vtable, Use INIT() for PL_magic_vtable_names 2025-10-06 08:20:03 -06:00
miniperlmain.c update PL_main_thread on fork() 2025-08-07 14:12:56 +10:00
mkppport Add perl shebang to mkppport 2022-09-05 20:39:49 +02:00
mkppport.lst mkppport.lst - add dist/ packages that contain XS 2022-04-18 14:22:26 +08:00
mro_core.c Dont call Perl_croak manually in core 2025-03-18 04:16:51 +01:00
myconfig.SH myconfig.SH: remove leftover bincompat5005 entry 2020-08-10 23:08:53 +01:00
mydtrace.h rename and function-ise dtrace macros 2016-03-18 23:45:25 +00:00
nostdio.h nostdio.h: Properly indent #nested lines 2024-01-19 11:16:26 -07:00
numeric.c perlapi: Combine grok_(bin|hex|oct) into single entry 2025-12-04 10:08:22 -07:00
op.c Perl_doref(): improve code comments 2025-11-12 10:24:19 +00:00
op.h Implement named parameters in signatures (PPC0024) 2025-10-31 11:31:29 +00:00
op_reg_common.h op_reg_common.h: Convert _RXf_PMf_COMPILETIME to legal name 2025-09-01 08:12:04 -06:00
opcode.h opcode.h: Initialize with INIT(), not DOINIT 2025-10-06 08:20:03 -06:00
opnames.h Create new OP_MULTIPARAM to implement subroutine signatures 2025-08-25 14:06:05 +01:00
overload.h Revert "switch removal: remove smartmatch" 2025-02-16 14:51:16 +01:00
overload.inc Revert "switch removal: remove smartmatch" 2025-02-16 14:51:16 +01:00
PACKAGING Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
packsizetables.inc fix incorrect vi filetype declarations in generated files 2023-03-24 06:10:05 +08:00
pad.c Two bugfixes to field handling during thread cloning 2025-09-26 19:16:46 +01:00
pad.h perlapi: Document new name for SAVEPADSV 2025-09-09 10:50:08 -06:00
parser.h Add #define for the maximum Perl identifier length 2025-10-17 12:26:03 -06:00
patchlevel.h Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
peep.c peep.c: Only remove expected empty if/else blocks structures 2025-09-05 20:35:18 -06:00
perl.c Add a bunch of PERL_UNUSED_ARG calls 2025-11-04 10:38:29 -07:00
perl.h grok_bin_oct_hex: Change name of internal flag 2025-11-12 14:05:11 -07:00
perl_inc_macro.h iperlsys.h,perl_inc_macro.h: Use std recursion guard name 2025-07-30 09:50:37 -06:00
perl_langinfo.h perl_langinfo.h: Fix to work on Android 2024-10-21 15:17:16 -06:00
perl_siphash.h perl_siphash.h - add documentation 2025-03-05 19:01:14 +01:00
perlapi.h Correct typos as per GH 20435 2022-12-29 09:39:58 -05:00
perldtrace.d
perlio.c fix type of S_lockcnt_dec 2025-08-16 19:27:41 +02:00
perlio.h perlapi: PERLIO_FUNCS_CAST is not a typedef 2024-08-31 18:22:06 -06:00
perlio.sym
perliol.h Remove :win32 PerlIO layer 2021-06-28 08:47:57 -06:00
perlsdio.h
perlstatic.h Create perlstatic.h 2022-06-14 07:38:50 -06:00
perlvars.h perlapi: PL_check and PL_hexdigit are arrays not macros 2025-07-31 08:50:56 -06:00
perly.act Rename THING token when used for attributes 2025-12-04 10:22:54 +00:00
perly.c parser debugging output: strip token name prefixes 2025-11-06 11:24:18 +00:00
perly.h Rename THING token when used for attributes 2025-12-04 10:22:54 +00:00
perly.tab Rename THING token when used for attributes 2025-12-04 10:22:54 +00:00
perly.y Rename THING token when used for attributes 2025-12-04 10:22:54 +00:00
Policy_sh.SH
pp.c Add MSVC support for chunk-at-a-time string reversal 2025-12-02 22:44:02 +00:00
pp.h pp.h: Convert _EXTEND_NEEDS_GROW to legal name 2025-09-01 08:11:56 -06:00
pp_ctl.c pp_ctl.c: Comment on 2 exceptions in pp_goto() 2025-12-03 13:23:34 -05:00
pp_hot.c pp.c, pp_hot.c: Use SvIsUV rather than SvUOK after SvIV_please_nomg 2025-11-20 12:03:01 -07:00
pp_pack.c pack.c: Convert _action to legal name 2025-09-01 08:11:56 -06:00
pp_proto.h Create new OP_MULTIPARAM to implement subroutine signatures 2025-08-25 14:06:05 +01:00
pp_sort.c pp_sort: avoid potential I32 overflow from the comparator 2025-09-16 07:10:34 +02:00
pp_sys.c pp_sys.c: Initialize variable to avoid compiler warning 2025-11-04 10:38:29 -07:00
proto.h make pregexec() handle zero-length strings again 2025-12-04 18:40:52 +00:00
README Update copies of GPL to match recent FSF changes 2025-05-02 23:35:09 +02:00
README.aix Update AIX README 2025-07-30 13:49:46 -06:00
README.amiga Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.android Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.bs2000 Don't try to link to INSTALL which is not linkable documentation 2025-04-18 15:30:10 +03:00
README.cn Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.cygwin README.cygwin: Note parallel compiling/testing is available 2022-11-29 13:07:01 -07:00
README.freebsd Replace FreeBSD URL's with new HTTPS ones 2023-01-11 12:08:10 -07:00
README.haiku Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
README.hpux Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.hurd Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.irix Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.jp Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.ko Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.linux Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.macosx Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
README.openbsd Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.os2 Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
README.os390 Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.os400 Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.plan9 Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.qnx Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.riscos README.riscos: Improve the document 2024-04-03 17:19:58 -06:00
README.solaris Remove full stops from POD headings 2024-01-11 10:06:24 +00:00
README.synology Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.tru64 Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.tw Add vim-modeline to render files as POD 2022-09-05 20:39:49 +02:00
README.vms Bump the perl version in various places for 5.43.5 2025-11-20 07:44:52 +01:00
README.vos pods, comments: Fix up e.g. i.e. 2024-06-16 12:39:53 -06:00
README.win32 README.win32: Formatting-only 2025-11-03 16:08:50 -07:00
reentr.c regen/reentr.pl: Update copyright year 2024-02-28 06:44:29 -07:00
reentr.h regen/reentr.pl: White-space, comment 2024-02-28 06:44:29 -07:00
regcharclass.h regcharclass.pl: Fix typo in comment 2025-10-12 17:12:49 -06:00
regcomp.c grok_bin_oct_hex: Change name of internal flag 2025-11-12 14:05:11 -07:00
regcomp.h Convert all core uses of _ASSERT__() to assert() 2025-09-03 19:46:22 -06:00
regcomp.sym regex engine: split EVAL_postponed_AB state 2025-12-02 20:55:28 +00:00
regcomp_debug.c Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
regcomp_internal.h Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
regcomp_invlist.c Various functions - when a field is already zero, don't set it to zero. 2025-10-14 18:13:01 +01:00
regcomp_study.c Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
regcomp_trie.c regcomp.h: Convert _reg_trie_data to legal name 2025-09-01 08:12:08 -06:00
regen.pl Automatically regenerate locale_table.h 2024-02-27 07:41:28 -07:00
regen_perly.pl regen_perly.pl: remove mostly dead gather_tokens code 2024-09-07 05:36:35 +02:00
regexec.c regex engine: split EVAL_postponed_AB state 2025-12-02 20:55:28 +00:00
regexp.h Change invlist function names to be legal 2025-10-12 16:56:21 -06:00
regexp_constants.h Add "magical" chars to l1_char_class_tab.h 2025-11-01 20:40:00 -06:00
reginline.h Dont call Perl_croak manually in core 2025-03-18 04:16:51 +01:00
regnodes.h regex engine: split EVAL_postponed_AB state 2025-12-02 20:55:28 +00:00
run.c Perl_runops_wrap((): don't mortalise NULLs 2023-08-16 17:17:00 +01:00
runtests.SH Enable z/OS to run with '-e' option for runtests 2022-01-01 18:11:47 -07:00
sbox32_hash.h sbox32_hash.h: Use legal C symbol names 2025-09-01 08:11:53 -06:00
scope.c Perl_leave_scope - sv_backoff shouldn't do an unnecessay string copy 2025-12-03 00:28:25 +00:00
scope.h scope.h: Remove SAVELONG() expands to non-existent 2025-09-18 13:23:29 -06:00
scope_types.h regcomp: handle cloning the rexc cleanup in the scope stack 2025-04-19 17:25:53 +02:00
SECURITY.md security docs: update capitalization of PSC 2021-04-16 19:16:49 -04:00
sv.c Perl_sv_backoff - only copy the buffer contents if SvOK(sv) 2025-12-03 00:28:25 +00:00
sv.h sv.h: Make SvIsUV() return 1 (rather than 0x80000000) for true condition 2025-11-20 12:03:01 -07:00
sv_inline.h embed.fnc: mv definition of more_sv 2025-10-21 18:58:48 -06:00
taint.c Stop calling Perl_*warn*() manually in core 2025-03-19 06:37:08 +01:00
TestInit.pm allow some basic infrastructure to load with -Dusedefaultstrict 2024-01-04 14:24:53 +11:00
thread.h regcomp_trie.c. Convert _eC to legal name 2025-09-01 08:12:09 -06:00
time64.c time64.c: Remove no longer needed code 2022-09-29 13:08:27 -06:00
time64.h time64: declare tm_zone as const char* unconditionally 2020-07-18 01:28:15 +01:00
time64_config.h time64_config.h: #include reentr.h 2020-12-04 14:43:13 -07:00
toke.c Rename THING token when used for attributes 2025-12-04 10:22:54 +00:00
uni_keywords.h Add "magical" chars to l1_char_class_tab.h 2025-11-01 20:40:00 -06:00
unicode_constants.h regen/unicode_constants: Create one for SHY 2025-10-26 13:58:09 -06:00
universal.c universal.c: Indent code to current standards 2025-10-29 09:44:29 -06:00
unixish.h Employ PL_shutdownhook 2024-09-30 22:52:06 +02:00
utf8.c utf8.c: Clarify comment 2025-11-01 21:02:37 -06:00
utf8.h utf8.h: Use legal macro name 2025-10-14 09:37:20 -06:00
utfebcdic.h Convert all core uses of _ASSERT__() to assert() 2025-09-03 19:46:22 -06:00
util.c Add a bunch of PERL_UNUSED_ARG calls 2025-11-04 10:38:29 -07:00
util.h Make die() always expand to Perl_die_nocontext() 2025-09-21 06:55:45 -06:00
utils.lst Update IO-Compress to CPAN version 2.089 2019-11-06 23:24:10 +00:00
vutil.c Stop calling Perl_sv_catpvf manually 2025-03-18 04:16:51 +01:00
vutil.h cpan/version: Update to version 0.9933 2024-09-14 17:45:19 -04:00
vxs.inc cpan/version: Update to version 0.9933 2024-09-14 17:45:19 -04:00
warnings.h Implement named parameters in signatures (PPC0024) 2025-10-31 11:31:29 +00:00
write_buildcustomize.pl write_buildcustomize.pl: Standardize indents at 4 spaces 2024-07-06 10:41:21 -04:00
XSUB.h perlapi: XS and kin are not typedefs 2025-07-30 09:44:13 -06:00
zaphod32_hash.h zaphod32_hash.h - rework comment to be more legible 2022-12-30 12:44:32 -05:00

Perl is Copyright (C) 1993 - 2025 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
at the GitHub issue tracker at https://github.com/Perl/perl5/issues

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, see
<https://www.gnu.org/licenses/>.

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.