X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlfaq3.pod;h=dabe5687a52f74ead75192c9a2d1958d455836e7;hb=dda47b01aa025c40b3278007f62051a5ef7daf60;hp=d71524b3ee4f3507757a3b316bfe0d00a033d7cf;hpb=e083a89c55ca67a4c7350ab005acbd78ed656085;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlfaq3.pod b/pod/perlfaq3.pod index d71524b..dabe568 100644 --- a/pod/perlfaq3.pod +++ b/pod/perlfaq3.pod @@ -11,7 +11,7 @@ and programming support. Have you looked at CPAN (see L)? 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. +A crude table of contents for the Perl manpage set is found in L. =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 @@ -74,9 +74,9 @@ why what it's doing isn't what it should be doing. =head2 How do I profile my Perl programs? You should get the Devel::DProf module from the standard distribution -(and separately on CPAN) or also use Benchmark.pm from the standard -distribution. The Benchmark module lets you time specific portions of -your code, while Devel::DProf gives detailed breakdowns of where your +(or separately on CPAN) and also use Benchmark.pm from the standard +distribution. The Benchmark module lets you time specific portions of +your code, while Devel::DProf gives detailed breakdowns of where your code spends its time. Here's a sample use of Benchmark: @@ -157,62 +157,199 @@ the trick. And if not, it's easy to hack into what you want. =head2 Is there an IDE or Windows Perl Editor? -If you're on Unix, you already have an IDE--Unix itself. This powerful -IDE derives from its interoperability, flexibility, and configurability. -If you really want to get a feel for Unix-qua-IDE, the best thing to do -is to find some high-powered programmer whose native language is Unix. -Find someone who has been at this for many years, and just sit back -and watch them at work. They have created their own IDE, one that -suits their own tastes and aptitudes. Quietly observe them edit files, -move them around, compile them, debug them, test them, etc. The entire -development *is* integrated, like a top-of-the-line German sports car: -functional, powerful, and elegant. You will be absolutely astonished -at the speed and ease exhibited by the native speaker of Unix in his -home territory. The art and skill of a virtuoso can only be seen to be -believed. That is the path to mastery--all these cobbled little IDEs -are expensive toys designed to sell a flashy demo using cheap tricks, -and being optimized for immediate but shallow understanding rather than -enduring use, are but a dim palimpsest of real tools. - -In short, you just have to learn the toolbox. However, if you're not -on Unix, then your vendor probably didn't bother to provide you with -a proper toolbox on the so-called complete system that you forked out -your hard-earned cash for. - -PerlBuilder (http://www.solutionsoft.com/perl.htm) is an integrated -development environment for Windows that supports Perl development. -VisualPerl (http://www.activestate.com/IDE) is also an integrated -development environment for Windows, Unix, and several Open Source OSes -that supports Perl development. Perl code magic is another IDE -(http://www.petes-place.com/codemagic.html). CodeMagicCD -(http://www.codemagiccd.com/) is a commercial IDE. - -Perl programs are just plain text, though, so you could download emacs -for Windows (http://www.gnu.org/software/emacs/windows/ntemacs.html) -or a vi clone such as nvi (available from CPAN in src/misc/) or vim -(http://www.vim.org/). Vim runs on win32 -(http://www.cs.vu.nl/%7Etmgil/vi.html). Vile is another widely ported -vi clone that has a Perl language sensitivity module -(http://www.clark.net/pub/dickey/vile/vile.html). SlickEdit -(http://www.slickedit.com/) is a full featured commercial editor that -has a modular architecture: it can emulate several other common -editors and it can help with programming language sensitivity modules -for a variety of programming languages including Perl. If you're -transferring Windows text files to Unix be sure to transfer them in -ASCII mode so the ends of lines are appropriately mangled. There is -also a toyedit Text widget based editor written in Perl that is -distributed with the Tk module on CPAN. The ptkdb -(http://world.std.com/~aep/ptkdb/) is a Perl/tk based debugger that -acts as a development environment of sorts. Perl Composer +Perl programs are just plain text, so any editor will do. + +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. + +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, 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 + +( 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 any emacs the cperl-mode (M-x cperl-mode) gives you perhaps the +best available Perl editing mode in any editor. + +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, 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 and vile offer an embedded Perl. + +The following are Win32 multilanguage editor/IDESs that support Perl: + +=over 4 + +=item Codewright + +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 +(http://world.std.com/~aep/ptkdb/) is a Perl/tk based debugger that +acts as a development environment of sorts. Perl Composer (http://perlcomposer.sourceforge.net/vperl.html) is an IDE for Perl/Tk GUI creation. +In addition to an editor/IDE you might be interested in a more +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 MPW 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/), -as does the Alpha editor (http://www.bcity.com/alphatext). +the MPW Perl tool can make use of the MPW Shell itself as an editor (with +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? @@ -435,14 +572,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