Document the changes with regards to running of END blocks.
[p5sagit/p5-mst-13.2.git] / pod / perlfaq3.pod
index 5438037..4eceb46 100644 (file)
@@ -11,7 +11,7 @@ and programming support.
 
 Have you looked at CPAN (see L<perlfaq2>)?  The chances are that
 someone has already written a module that can solve your problem.
-Have you read the appropriate man pages?  Here's a brief index:
+Have you read the appropriate manpages?  Here's a brief index:
 
        Basics          perldata, perlvar, perlsyn, perlop, perlsub
        Execution       perlrun, perldebug
@@ -25,12 +25,12 @@ Have you read the appropriate man pages?  Here's a brief index:
        Various         http://www.perl.com/CPAN/doc/FMTEYEWTK/index.html
                        (not a man-page but still useful)
 
-A crude table of contents for the Perl man page set is found in L<perltoc>.
+A crude table of contents for the Perl manpage set is found in L<perltoc>.
 
 =head2 How can I use Perl interactively?
 
 The typical approach uses the Perl debugger, described in the
-perldebug(1) man page, on an ``empty'' program, like this:
+perldebug(1) manpage, on an ``empty'' program, like this:
 
     perl -de 42
 
@@ -159,52 +159,132 @@ the trick.  And if not, it's easy to hack into what you want.
 
 Perl programs are just plain text, so any editor will do.
 
-If you're transferring Windows text files to Unix using FTP be sure
-to transfer them in ASCII mode so the ends of lines are appropriately
-converted.
-
 If you're on Unix, you already have an IDE--Unix itself.  The UNIX
 philosophy is the philosophy of several small tools that each do one
 thing and do it well.  It's like a carpenter's toolbox.
 
-For Windows: PerlBuilder (http://www.solutionsoft.com/perl.htm) is
-an integrated development environment for Windows that supports Perl
-development.  Komodo, ActiveState's cross-platform, multi-language IDE
-has Perl support, including a regular expression debugger and remote
-debugging (http://www.ActiveState.com/Products/Komodo/index.html).
-(Visual Perl, a Visual Studio.NET plug-in is currently in beta
-(late 2000) (http://www.ActiveState.com/Products/VisualPerl/index.html)).
-The visiPerl+ IDE is available from Help Consulting
-(http://helpconsulting.net/visiperl/).  Perl code magic is another IDE
-(http://www.petes-place.com/codemagic.html).  CodeMagicCD
-(http://www.codemagiccd.com/) is another IDE.  The Object System
+If you want an IDE, check the following:
+
+=over 4
+
+=item Komodo
+
+ActiveState's cross-platform (as of April 2001 Windows and Linux),
+multi-language IDE has Perl support, including a regular expression
+debugger and remote debugging
+(http://www.ActiveState.com/Products/Komodo/index.html).  (Visual
+Perl, a Visual Studio.NET plug-in is currently (early 2001) in beta
+(http://www.ActiveState.com/Products/VisualPerl/index.html)).
+
+=item The Object System
+
 (http://www.castlelink.co.uk/object_system/) is a Perl web
-applications development IDE.
+applications development IDE, apparently for any platform
+that runs Perl.
+
+=item Open Perl IDE
+
+( http://open-perl-ide.sourceforge.net/ )
+Open Perl IDE is an integrated development environment for writing
+and debugging Perl scripts with ActiveState's ActivePerl distribution
+under Windows 95/98/NT/2000.
+
+=item PerlBuilder
+
+(http://www.solutionsoft.com/perl.htm) is an integrated development
+environment for Windows that supports Perl development.
+
+=item visiPerl+
+
+( http://helpconsulting.net/visiperl/ )
+From Help Consulting, for Windows.
+
+=back
+
+For Windows there's also the
+
+=over 4
+
+=item CodeMagicCD
 
-Editors: if you're on Unix you probably have vi or a vi clone already,
+( http://www.codemagiccd.com/ ) Collection of various programming
+tools for Windows: Perl (5.005_03), TclTk, Python, GNU programming
+tools, REBOL, wxWindows toolkit, the MinGW GNU C/C++ compiler, DJGPP
+GNU C/C++ compiler, Cint C interpreter, YaBasic.
+
+=back
+
+For editors: if you're on Unix you probably have vi or a vi clone already,
 and possibly an emacs too, so you may not need to download anything.
-In anyemacs the cperl-mode (M-x cperl-mode) gives you perhaps the
+In any emacs the cperl-mode (M-x cperl-mode) gives you perhaps the
 best available Perl editing mode in any editor.
 
-In Windows: you can download GNU Emacs
-(http://www.gnu.org/software/emacs/windows/ntemacs.html) or XEmacs
-(http://www.xemacs.org/Download/index.html), or a vi clone such as
-Elvis (ftp://ftp.cs.pdx.edu/pub/elvis/, http://www.fh-wedel.de/elvis/),
-Vile (http://www.clark.net/pub/dickey/vile/vile.html), or
-Vim (http://www.vim.org/) (win32: http://www.cs.vu.nl/%7Etmgil/vi.html).
-For vi lovers in general: http://www.thomer.com/thomer/vi/vi.html
+For Windows editors: you can download an Emacs
+
+=over 4
+
+=item GNU Emacs
+
+http://www.gnu.org/software/emacs/windows/ntemacs.html
+
+=item MicroEMACS
+
+http://members.nbci.com/uemacs/
+
+=item XEmacs
+
+http://www.xemacs.org/Download/index.html
+
+=back
+
+or a vi clone such as
+
+=over 4
+
+=item Elvis
+
+ftp://ftp.cs.pdx.edu/pub/elvis/ http://www.fh-wedel.de/elvis/
+
+=item Vile
+
+http://vile.cx/
+
+=item Vim
+
+http://www.vim.org/
+
+win32: http://www.cs.vu.nl/%7Etmgil/vi.html
+
+=back
+
+For vi lovers in general, Windows or elsewhere:
+http://www.thomer.com/thomer/vi/vi.html.
 
 nvi (http://www.bostic.com/vi/, available from CPAN in src/misc/) is
-yet another vi clone, not unfortunately available for Windows, but in
+yet another vi clone, unfortunately not available for Windows, but in
 UNIX platforms you might be interested in trying it out, firstly because
 strictly speaking it is not a vi clone, it is the real vi, or the new
 incarnation of it, and secondly because you can embed Perl inside it
 to use Perl as the scripting language.  nvi is not alone in this,
-though: at least also vim offers an embedded Perl.
+though: at least also vim and vile offer an embedded Perl.
+
+The following are Win32 multilanguage editor/IDESs that support Perl:
+
+=over 4
+
+=item Codewright
 
-The following are Win32 multilanguage editor/IDESs that support Perl: 
-Codewright (http://www.starbase.com/), MultiEdit (http://www.MultiEdit.com/),
-SlickEdit (http://www.slickedit.com/).
+http://www.starbase.com/
+
+=item MultiEdit
+
+http://www.MultiEdit.com/
+
+=item SlickEdit
+
+http://www.slickedit.com/
+
+=back
 
 There is also a toyedit Text widget based editor written in Perl
 that is distributed with the Tk module on CPAN.  The ptkdb
@@ -214,28 +294,63 @@ acts as a development environment of sorts.  Perl Composer
 GUI creation.
 
 In addition to an editor/IDE you might be interested in a more
-powerful shell environment for Win32.  Your options include the Bash
-from the Cygwin package (http://sources.redhat.com/cygwin/), or the
-Ksh from the MKS Toolkit (http://www.mks.com/), or the Bourne shell of
-the U/WIN environment (http://www.research.att.com/sw/tools/uwin/), or
-the Tcsh (ftp://ftp.astron.com/pub/tcsh/, see also
-http://www.primate.wisc.edu/software/csh-tcsh-book/), or the Zsh
-(ftp://ftp.blarg.net/users/amol/zsh/, see also http://www.zsh.org/).
+powerful shell environment for Win32.  Your options include
+
+=over 4
+
+=item Bash
+
+from the Cygwin package (http://sources.redhat.com/cygwin/)
+
+=item Ksh
+
+from the MKS Toolkit (http://www.mks.com/), or the Bourne shell of
+the U/WIN environment (http://www.research.att.com/sw/tools/uwin/)
+
+=item Tcsh
+
+ftp://ftp.astron.com/pub/tcsh/, see also
+http://www.primate.wisc.edu/software/csh-tcsh-book/
+
+=item Zsh
+
+ftp://ftp.blarg.net/users/amol/zsh/, see also http://www.zsh.org/
+
+=back
+
 MKS and U/WIN are commercial (U/WIN is free for educational and
 research purposes), Cygwin is covered by the GNU Public License (but
 that shouldn't matter for Perl use).  The Cygwin, MKS, and U/WIN all
 contain (in addition to the shells) a comprehensive set of standard
 UNIX toolkit utilities.
 
+If you're transferring text files between Unix and Windows using FTP
+be sure to transfer them in ASCII mode so the ends of lines are
+appropriately converted.
+
 On Mac OS the MacPerl Application comes with a simple 32k text editor
 that behaves like a rudimentary IDE.  In contrast to the MacPerl Application
 the MPW Perl tool can make use of the MPW Shell itself as an editor (with
-no 32k limit).  BBEdit and BBEdit Lite are text editors for Mac OS 
-that have a Perl sensitivity mode (http://web.barebones.com/).
-Alpha is an editor, written and extensible in Tcl, that nonetheless has
+no 32k limit).
+
+=over 4
+
+=item BBEdit and BBEdit Lite
+
+are text editors for Mac OS that have a Perl sensitivity mode
+(http://web.barebones.com/).
+
+=item Alpha
+
+is an editor, written and extensible in Tcl, that nonetheless has
 built in support for several popular markup and programming languages
 including Perl and HTML (http://alpha.olm.net/).
 
+=back
+
+Pepper and Pe are programming language sensitive text editors for Mac
+OS X and BeOS respectively (http://www.hekkelman.com/).
+
 =head2 Where can I get Perl macros for vi?
 
 For a complete version of Tom Christiansen's vi configuration file,
@@ -298,7 +413,9 @@ can often make a dramatic difference.  Jon Bentley's book
 on optimization, too.  Advice on benchmarking boils down to: benchmark
 and profile to make sure you're optimizing the right part, look for
 better algorithms instead of microtuning your code, and when all else
-fails consider just buying faster hardware.
+fails consider just buying faster hardware.  You will probably want to
+read the answer to the earlier question ``How do I profile my Perl programs?''
+if you haven't done so already.
 
 A different approach is to autoload seldom-used Perl code.  See the
 AutoSplit and AutoLoader modules in the standard distribution for
@@ -457,14 +574,15 @@ determine the insecure things and exploit them without viewing the
 source.  Security through obscurity, the name for hiding your bugs
 instead of fixing them, is little security indeed.
 
-You can try using encryption via source filters (Filter::* from CPAN),
-but any decent programmer will be able to decrypt it.  You can try using
-the byte code compiler and interpreter described below, but the curious
-might still be able to de-compile it.  You can try using the native-code
-compiler described below, but crackers might be able to disassemble it.
-These pose varying degrees of difficulty to people wanting to get at
-your code, but none can definitively conceal it (true of every
-language, not just Perl).
+You can try using encryption via source filters (Starting from Perl
+5.8 the Filter::Simple and Filter::Util::Call modules are included in
+the standard distribution), but any decent programmer will be able to
+decrypt it.  You can try using the byte code compiler and interpreter
+described below, but the curious might still be able to de-compile it.
+You can try using the native-code compiler described below, but
+crackers might be able to disassemble it.  These pose varying degrees
+of difficulty to people wanting to get at your code, but none can
+definitively conceal it (true of every language, not just Perl).
 
 If you're concerned about people profiting from your code, then the
 bottom line is that nothing but a restrictive license will give you
@@ -702,10 +820,8 @@ information, see L<ExtUtils::MakeMaker>.
 Copyright (c) 1997-1999 Tom Christiansen and Nathan Torkington.
 All rights reserved.
 
-When included as an integrated part of the Standard Distribution
-of Perl or of its documentation (printed or otherwise), this works is
-covered under Perl's Artistic License.  For separate distributions of
-all or part of this FAQ outside of that, see L<perlfaq>.
+This documentation is free; you can redistribute it and/or modify it
+under the same terms as Perl itself.
 
 Irrespective of its distribution, all code examples here are in the public
 domain.  You are permitted and encouraged to use this code and any