This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add Synology instructions
[perl5.git] / pod / perl.pod
index a85b9bf..1902f05 100644 (file)
@@ -42,7 +42,7 @@ flag =   perlvms
 path perlfaq.*               cpan/perlfaq/lib/
 path perlglossary            cpan/perlfaq/lib/
 path perlxs(?:tut|typemap)?  dist/ExtUtils-ParseXS/lib/
-path perldoc                 cpan/Pod-Perldoc/lib/
+path perldoc                 cpan/Pod-Perldoc/
 
 aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
@@ -179,19 +179,24 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
-    perl5175delta      Perl changes in version 5.17.5
-    perl5174delta      Perl changes in version 5.17.4
-    perl5173delta      Perl changes in version 5.17.3
-    perl5172delta      Perl changes in version 5.17.2
-    perl5171delta      Perl changes in version 5.17.1
-    perl5170delta      Perl changes in version 5.17.0
+    perl5195delta      Perl changes in version 5.19.5
+    perl5194delta      Perl changes in version 5.19.4
+    perl5193delta      Perl changes in version 5.19.3
+    perl5192delta      Perl changes in version 5.19.2
+    perl5191delta      Perl changes in version 5.19.1
+    perl5190delta      Perl changes in version 5.19.0
+    perl5181delta      Perl changes in version 5.18.1
+    perl5180delta      Perl changes in version 5.18.0
     perl5161delta      Perl changes in version 5.16.1
     perl5162delta      Perl changes in version 5.16.2
+    perl5163delta      Perl changes in version 5.16.3
     perl5160delta      Perl changes in version 5.16.0
+    perl5144delta      Perl changes in version 5.14.4
     perl5143delta      Perl changes in version 5.14.3
     perl5142delta      Perl changes in version 5.14.2
     perl5141delta      Perl changes in version 5.14.1
     perl5140delta      Perl changes in version 5.14.0
+    perl5125delta      Perl changes in version 5.12.5
     perl5124delta      Perl changes in version 5.12.4
     perl5123delta      Perl changes in version 5.12.3
     perl5122delta      Perl changes in version 5.12.2
@@ -232,13 +237,10 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlaix            Perl notes for AIX
     perlamiga          Perl notes for AmigaOS
-    perlbeos           Perl notes for BeOS
     perlbs2000         Perl notes for POSIX-BC BS2000
     perlce             Perl notes for WinCE
     perlcygwin         Perl notes for Cygwin
-    perldgux           Perl notes for DG/UX
     perldos            Perl notes for DOS
-    perlepoc           Perl notes for EPOC
     perlfreebsd        Perl notes for FreeBSD
     perlhaiku          Perl notes for Haiku
     perlhpux           Perl notes for HP-UX
@@ -257,6 +259,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
     perlriscos         Perl notes for RISC OS
     perlsolaris        Perl notes for Solaris
     perlsymbian        Perl notes for Symbian
+    perlsynology       Perl notes for Synology
     perltru64          Perl notes for Tru64
     perlvms            Perl notes for VMS
     perlvos            Perl notes for Stratus VOS
@@ -268,6 +271,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlboot           
     perlbot            
+    perlrepository
     perltodo
     perltooc           
     perltoot           
@@ -277,9 +281,16 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 On a Unix-like system, these documentation files will usually also be
 available as manpages for use with the F<man> program.
 
+Some documentation is not available as man pages, so if a
+cross-reference is not found by man, try it with L<perldoc>.  Perldoc can
+also take you directly to documentation for functions (with the B<-f>
+switch). See C<perldoc --help> (or C<perldoc perldoc> or C<man perldoc>)
+for other helpful options L<perldoc> has to offer.
+
 In general, if something strange has gone wrong with your program and you're
-not sure where you should look for help, try the B<-w> switch first.  It will
-often point out exactly where the trouble is.
+not sure where you should look for help, try making your code comply with
+B<use strict> and B<use warnings>.  These will often point out exactly
+where the trouble is.
 
 =head1 DESCRIPTION
 
@@ -294,108 +305,22 @@ a general-purpose programming language. It's widely used for everything
 from quick "one-liners" to full-scale application development.
 
 The language is intended to be practical (easy to use, efficient,
-complete) rather than beautiful (tiny, elegant, minimal).
-
-Perl combines (in the author's opinion, anyway) some of the best
-features of C, B<sed>, B<awk>, and B<sh>, so people familiar with
-those languages should have little difficulty with it.  (Language
-historians will also note some vestiges of B<csh>, Pascal, and even
-BASIC-PLUS.)  Expression syntax corresponds closely to C
-expression syntax.  Unlike most Unix utilities, Perl does not
-arbitrarily limit the size of your data--if you've got the memory,
-Perl can slurp in your whole file as a single string.  Recursion is of
-unlimited depth.  And the tables used by hashes (sometimes called
-"associative arrays") grow as necessary to prevent degraded
-performance.  Perl can use sophisticated pattern matching techniques to
-scan large amounts of data quickly.  Although optimized for
-scanning text, Perl also has many excellent tools for slicing
-and dicing binary data.
-
-But wait, there's more...
-
-Begun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete
-rewrite that provides the following additional benefits:
-
-=over 4
-
-=item *
-
-modularity and reusability using innumerable modules 
-
-Described in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>.
-
-=item *
-
-embeddable and extensible 
-
-Described in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlxstypemap>,
-L<perlcall>, L<perlguts>, and L<xsubpp>.
-
-=item *
-
-roll-your-own magic variables (including multiple simultaneous DBM
-implementations)
-
-Described in L<perltie> and L<AnyDBM_File>.
-
-=item *
-
-subroutines can now be overridden, autoloaded, and prototyped
-
-Described in L<perlsub>.
-
-=item *
-
-arbitrarily nested data structures and anonymous functions
-
-Described in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>.
-
-=item *
-
-object-oriented programming
-
-Described in L<perlobj> and L<perlootut>.
-
-=item *
-
-support for light-weight processes (threads)
-
-Described in L<perlthrtut> and L<threads>.
-
-=item *
-
-support for Unicode, internationalization, and localization
-
-Described in L<perluniintro>, L<perllocale> and L<Locale::Maketext>.
-
-=item *
-
-lexical scoping
-
-Described in L<perlsub>.
-
-=item *
-
-regular expression enhancements
-
-Described in L<perlre>, with additional examples in L<perlop>.
-
-=item *
-
-enhanced debugger and interactive Perl environment,
-with integrated editor support
-
-Described in L<perldebtut>, L<perldebug> and L<perldebguts>.
-
-=item *
-
-POSIX 1003.1 compliant library
-
-Described in L<POSIX>.
-
-=back
-
-Okay, that's I<definitely> enough hype.
+complete) rather than beautiful (tiny, elegant, minimal).  It combines
+(in the author's opinion, anyway) some of the best features of B<sed>,
+B<awk>, and B<sh>, making it familiar and easy to use for Unix users to
+whip up quick solutions to annoying problems.  Its general-purpose
+programming facilities support procedural, functional, and
+object-oriented programming paradigms, making Perl a comfortable
+language for the long haul on major projects, whatever your bent.
+
+Perl's roots in text processing haven't been forgotten over the years.
+It still boasts some of the most powerful regular expressions to be
+found anywhere, and its support for Unicode text is world-class.  It
+handles all kinds of structured text, too, through an extensive
+collection of extensions.  Those libraries, collected in the CPAN,
+provide ready-made solutions to an astounding array of problems.  When
+they haven't set the standard themselves, they steal from the best
+-- just like Perl itself.
 
 =head1 AVAILABILITY
 
@@ -429,8 +354,13 @@ Perl developers, please write to perl-thanks@perl.org .
 
 =head1 DIAGNOSTICS
 
-The C<use warnings> pragma (and the B<-w> switch) produces some 
-lovely diagnostics.
+Using the C<use strict> pragma ensures that all variables are properly
+declared and prevents other misuses of legacy Perl features.
+
+The C<use warnings> pragma produces some lovely diagnostics. One can
+also use the B<-w> flag, but its use is normally discouraged, because
+it gets applied to all executed Perl code, including that not under
+your control.
 
 See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
 diagnostics> pragma automatically turns Perl's normally terse warnings
@@ -444,12 +374,12 @@ B<-e> is counted as one line.)
 Setuid scripts have additional constraints that can produce error
 messages such as "Insecure dependency".  See L<perlsec>.
 
-Did we mention that you should definitely consider using the B<-w>
-switch?
+Did we mention that you should definitely consider using the B<use warnings>
+pragma?
 
 =head1 BUGS
 
-The B<-w> switch is not mandatory.
+The behavior implied by the B<use warnings> pragma is not mandatory.
 
 Perl is at the mercy of your machine's definitions of various
 operations such as type casting, atof(), and floating-point