Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Perl Development Tools

by explorer (Chaplain)
on Feb 18, 2006 at 23:06 UTC ( #531175=perlmeditation: print w/ replies, xml ) Need Help??

A table with many tools for Perl development.
Any help will be welcome to fill it. Please, /msg me with new features and programs.

Perl Development Tools. Last update:  2014-06-06 14:00 GMT

Name Perl
exclusive
Free Perl
engine
Syntax
checking
Syntax
colouring
Auto
indent
Incremental
search
Bracket
matching
Folding Var
tree
Code
browser
Debugger Stepping Breakpoints Watches Var
evaluation
Stack
module
Bookmarks Suggest &
complete
Identify
errors
Interactive
Shell
Code
Snippets
Project Control
version
Multi
document
Split
View
IME Docs & Help viewer Module
installer
WEB FTP/SSH HTML
export
Linux BSD Mac OS X Solaris Windows
Eclipse + EPIC y y any y y y y y y y y y y y y y   y y y   y y y y y   y n n n n y y y y y
Perl Express y y any y y y n y n n n y y y   y   y     n y y n y n   y n y n y n n n n y
Padre y y any y y y y y y   y             y y y   y y y y n n y   y y y y   y   y
Kephra y y     y y y y y n n n n n n n n y n n n n n n y n n n n n n y y n n n y
Open Perl IDE y y any y y         y   y   y   y y                     y         n n n n y
Perl Studio y n   y y y   y n n n n n n n n n y y n n n y n y n n n n y y n n n n n y
visiPerl+ y n ActivePerl   y y   y n y y             y     y y n n y n   y n y y n n n n n y
Perl Scripting Tool y n any   y       n n y n n n n n n y n y n y y n y n     n n y n n n n n y
EngInSite-Perl y n   y y         y y y y y y y         y   y y y         y y     n      
PerlEdit y n y y y       n n n y y     y   y   y n   y n y n   n n n y   y n n n y
DzSoft Perl y n   y y       y   y             y     y y     y     y   y y y   n      
OptiPerl y n   y y y   y y y y y y y y y   y y y   y y y y     y   y y y n n n n y
Perl Builder y n y y y y   y n n y y y y y y   y y y y y     y     y n y   y y n n n y
Geany n y any y y y n y y n y n n n n n n n y n y n y y y y   y n n n n y n n n y
SciTE n y n n y y y y y n n n n n n n n y y n y n n n y     n n n n n n n n n y
Notepad++ n y n n y y   y y n n n n n n n n y y n n n n n y y   n n n n   n n n n y
NEdit n y any y y y y y n n y y y y y y n y y y n n y y y y   y n n y y y n y y y
Vim n y n y y y y y y y y y y y y     y y y y y y y y y y y n n n   y y y y y
Kate n y n n y y y y y n n n n n n n n y y n y y y y y y y n n n y y y y y y y
FTE n y n n y y n y y n n n n n n n n y n n n n n n y y n n n n n n y n y y y
Emacs n y n y y y y y y n   y y y y n         y y   y y y y y   y y n y y y y y
KDevelop n y   y               n             n n                         y y      
Joe n y n n y y y y n n n n n n n n n y y n y n n n y y n n n n n n y y y y  
Jed n y n   y   y   y                               y               y n   y y
Gedit n y n   y y   y                                                 y        
Anjuta n y n   y y     y y y y y y y   y   y       y   y               y        
JEdit n y n n y y y y y n y n n n n n n y y n n n y y y y y y n n y n y y y y y
Komodo n n ActivePerl y y y y   y   y y y y y       y y y y y y y y y y y   y   y n y y y
Prof. Notepad n n n n y y n   n n n n n n n n n y   n n n n n y n   n n n n y n n n n y
UEStudio n n n n y y y y y y y n n n n n n y y n y y y y y y     n n y y n n n n y
EditPlus n n n n y y   y y n n n n n n n n   y y y y   n y y y n n y y   n n n n y
ED for Windows n n n n y y y y   y y n n n n n n y y y n y y n y y   n n n n y n n n n y
TextPad n n n n y y     n n n n n n n n n y   n n       y y   n n n n   n n n n y
Editeur n n n n y y n n n y y n n n n n n y   n n   y n y n   n n n n n n n n n y
Zeus n n any y y y y y y y y y n y y y n y n n n y y y y y n y y n y n n n n n y

Code Snippet: Store and retrieve set of lines of code (templates)
IME: Multilingual Input Method Editor
Var tree: List variables you use along the code
Var evaluation: At debugger phase you can see the value of var
Stack module: View the stack of modules called
Code browser: The tool show the layout (class, methods, functions, etc.)
Web: Web server integrated for cgi test
FTP/SSH: Remote edition
HTML export: Export the source of program with syntax colouring.

Comment on Perl Development Tools
Re: Perl Development Tools
by GrandFather (Cardinal) on Feb 18, 2006 at 23:17 UTC

    As at a couple of months ago Eclipse + Epic did not support break points making the debugger virtually useless. This may have changed since and I would be interested to hear if that is the case.


    DWIM is Perl's answer to Gödel

      Then you'll want to read IBM's Tutorial on how to do it. Annoying (free) registration required


      The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon
        Or you can get it straight from SF.net wo/ the registration nuisance.

        I haven't tried EPIC in quite awhile, the debugger looks much better than before. Has anyone debugged threaded apps w/ it yet ?

        I'm not a big Eclipse fan, but the re-install may be worth the effort if its the only debugger that sensibly supports ithreads.

        Update:

        OK, I lied...the docs above didn't bother to mention how BPs are added. So, to save you all the bothersome task of entering a bogus registration, here's the skinny:

        After you enter Debug mode, right click in the border (in my case, the line number border) next to the line you want a BP on. Then select "Add Remove Breakpoint" from the popup menu.

        A BP icon will then be added next to the line.

        That being said, my prelim attempts to debug a very simple threaded app leave me with the same sense I had before: Eclipse seems way too non-obvious to me. At a minimum, I think it violates my favorite Perl mantra, "Simple things should be easy, and hard things should be possible."

        And while EPIC seems to attempt ithreads support, I can't seem to get it to behave (Note: I'm using the "test" version, which may be the source of my difficulties, but the ChangeLog leads me to believe I'll have many more problems with the "stable" release).

        So I guess its back to perl -d for the time being...

Re: Perl Development Tools
by dragonchild (Archbishop) on Feb 19, 2006 at 02:10 UTC
    Vim has:
    • Bracket matching (user-definable, even)
    • Folding
    • Suggest and Complete
    • Multi-document
    • Split view
    • Doc and Help viewer
    • All the other languages
    • Is on every platform known to the Gods and Man (and then some)

    Granted, I don't use any of those features (other than multi-buffer), but that's just me.


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Perl Development Tools
by Tanktalus (Canon) on Feb 19, 2006 at 04:52 UTC

    FTE - although we're looking at a ground-up rewrite. That should be fun ;-)

    Free. Syntax hilighting (which is also fun... parsing perl without being perl...). Auto indent. Incremental search (I think - I'm not 100% sure what that means). Bracket matching. Folding (that's what the 'F' stands for). Linux, Solaris, Mac OS X (not tried that last one myself), Windows, (OS/2, AIX, HP, ...). PHP, Python, HTML, (C, IPF, Ada, REXX, Make, Diff, Shell, Pascal, Java, Tex, 4GL, ...).

    And most of the changes I've made to it in the last couple of years was perl syntax hilighting. Wow that has been painful. ;-)

    Update: Given ysth's interpretation, then, no, fte doesn't really have incremental search. At least, not that I've found ;-)

      I think "incremental search" means you start typing a search string and it matches as much as possible after every character you type. So in this message, typing "t" would jump to "think", adding "y" would jump to the first "typing", adding "p" would stay there, adding "e" would jump to the first "type".
Re: Perl Development Tools
by strat (Canon) on Feb 19, 2006 at 13:31 UTC
    Emacs:
    • Auto-indent: yes if configured, else with TAB
    • Incremental search: yes
    • Branket matching: yes
    • Folding: I didn't know that is is possible with emacs
    • Debugger: yes
    • Stepping: yes
    • Breakpoints: yes
    • Watches: yes
    • Interactive shell: yes
    • Code snippets: yes if configured, also automatically when a new file is created (auto-insert) dependend on file ending or whatever
    • Control version: yes
    • Multidocument: yes (not the classic MDI, but recursively split screen horizontally and vertically and change sizes of windows)
    • Split view: yes
    • Web/FTP: yes, you can use it as ftp-client and as primitive webbrowser (XEmacs is a little bit better)
    • Linux/MacOSx/Windows/Solaris: yes and many more
    • PHP/Python/Ruby/Tcl/HTML/SQL: yes
    • Different settings for different users

    Best regards,
    perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

      Folding: I didn't know that is is possible with emacs
      Yes, it is. Splitting the window is more useful, especially when combined with markers (and functions that automatically rotate point between several markers), but folding is also available. There's a minor mode for it, for instance (see, IIRC, folding.el). You can also see a great example of folding in action in Gnus: if you're reading an email message with nested quoting, and you middle click the highlighted portion of an attribution line (or position your cursor there and hit RET, I think), that user's comments are folded or unfolded. I don't think cperl-mode does anything Perl-specific with folding, though.
      Multidocument: yes (not the classic MDI, but recursively split screen horizontally and vertically and change sizes of windows)
      That description almost makes it sound as if you can only have as many documents open as you can find space on the screen for at once.
        That description almost makes it sound as if you can only have as many documents open as you can find space on the screen for at once.

        No. You can have many documents (I don't know how many, the biggest ammount I opened was about 60) open and only one be visible. With that splitscreen, you can also see and edit two different parts of the same file (e.g. a subroutine call in the upper window and its implementation in the lower window or the like)

        x) another nice feature I forgot: it can run in a terminal (e.g. ssh or telnet) and as GUI

        x) If you don't have root privileges, but may access a c compiler, you can easily compile and install and execute(!) emacs to your homedirectory

        Best regards,
        perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

Re: Perl Development Tools
by jonadab (Parson) on Feb 19, 2006 at 14:04 UTC

    Some additional info for the Emacs row. I should note that I've had to skip some entries because I don't know what they mean. Perhaps below the table you could give definitions for each of the columns? Just for example, the only meaning I can think of for "code snippets" would eather be, "Does the editor come with snippets of example Perl code", which seems an odd question, or else have to do with copy-and-paste, which I would hope *every* entry has. This is just one example of a column with a very unclear title. I'd really like to see a list below the table of what each column means.

    Perl engine: no, but see Perlmacs
    Syntax-checking: If the ability to hit a menu item or keyboard shortcut and have perl be called to report on whether the syntax checks okay or not qualfies, for instance, then Emacs definitely has it. Internally, though, apart from grouping-symbol-matching, there is only the syntax coloring.
    Auto-indent: syntax-driven and configurable.
    Incremental Search: certainly, and regular expression isearch too.
    Bracket matching: several different kinds of this.
    Debuggers: the _internal_ debugger in Emacs is only for lisp, but Emacs can work with external debuggers like gdb, the Perl debugger, and so on. cperl-mode sets up menu items and shortcuts for working with the Perl debugger.
    Stepping, Breakpoints, Watchers: Dunno. Maybe if you're using a debugger. I've never messed with that.
    Interactive shell: absolutely. Emacs can use an external shell such as bash in a buffer, or you can use eshell, which is a good deal better in a number of ways and integrates better with the rest of the environment, or there are also versions of Emacs available with Perl embedded, which would probably let you run a Perl shell in a buffer, without calling it externally like you would with bash, and would let the Perl shell have access to the internal editor environment.
    Var tree: not AFAIK. Maybe with one of the (many) features I've never messed with, speedbar or whatever.
    Var evaluation: only via an external debugger.
    Multi-document: Of course. Frankly, I'd just exclude from the table anything that doesn't have this. I mean, come on.
    Split view: ditto. Seriously, if you don't require basic stuff like this you'll end up with dross like Notepad on the list. Forget that: require this feature and trim out the column.
    IME: yes.
    Docs and help viewer: Yes, yes, yes. man page viewer, info viewer, web browser, TeX viewer, et cetera, ad infinitum, ad nauseam, all included, and cperl-mode also sets up menu items and shortcuts that pick up the function or whatever where the cursor is, call perldoc externally and put the results in a help buffer.
    Module installer: for Perl modules? Not built in, but of course you could hook up a shortcut to call perl and CPAN externally.
    Web: yes, and you can edit remote documents via WebDAV.
    FTP: yes, and you can directly edit documents that reside on a remote ftp server, if your ftp accounts gives you write access. Similarly for other protocols like scp.
    HTML export: Define this. I mean, yes, but I don't know that cperl-mode will export Perl code as HTML with the indenting and syntax coloring. That could be implemented in lisp, but I don't think it's standard. So, probably "n", if that's what you mean.
    Linux, Mac OS X, Solaris, Windows: yes, and every other OS you care to name.
    PHP, Python, Ruby, Tcl, HTML, SQL: of course, and every other programming language you care to name, except a couple of extreme "joke" languages like Malbolge.

    Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. Why, I've got so much sanity it's driving me crazy.
      Var tree: not AFAIK. Maybe with one of the (many) features I've never messed with, speedbar or whatever.

      Oh, yes, the speedbar. Just try M-x speedbar. And not to forget imenu and functions-menu (aka fume).

      There is another thing I really like: Call M-x cperl-check-syntax and have the output of perl -c with the ability to jump to the hot spots from there.

      Regards... stefan k
      you begin bashing the string with a +42 regexp of confusion

      HTML export: Define this. I mean, yes, but I don't know that cperl-mode will export Perl code as HTML with the indenting and syntax coloring. That could be implemented in lisp,
      See html-fontify and htmlize. There are some more, but these two I have some experience with.
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: Perl Development Tools
by CountZero (Bishop) on Feb 19, 2006 at 19:11 UTC
    Komodo also has a very useful Regex-tool, ppm install GUI, can integrate with versioning software and do FTP. Although I didn't try it myself it says it can do remote debugging. The debugger has watches and all the usual debugging tools. Finally, you can open an interactive Perl-shell within itself.

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Re: Perl Development Tools
by bart (Canon) on Feb 19, 2006 at 20:57 UTC
    PXPerl comes with SciTE, a lot of free text editors are based on the Scintilla text editing widget, take notepad++ for example, so naturally, I gave it a spin. A short list of what I like and what I miss, though for the latter maybe I just haven't found it yet:

    What I like:

    • good syntax highlighter for Perl
    • brace/bracket/parens balance matching
    • invoking external tools (i.e. perl) and capturing its STDOUT and STDERR
    • block folding

    What I miss:

    • Sticky indents, I prefer the next line to automatically indent on the same column position as the previous line. A tab entry should indent one more position, a backspace should outdent to the previous indentation level. Just for clarity: it doesn't do that.
    • block indent and outdent: select multiple lines and indent/outdent them with one button or menu click

    There probably are more points worthy to be added, but I haven't noticed them yet. After all, I've only been using this editor on and off for a few weeks.

    One thing's for sure: it doesn't bond with the Perl debugger, so if that's a make or break point for you, you can safely skip this editor.

Re: Perl Development Tools
by chanio (Priest) on Feb 19, 2006 at 22:14 UTC
Re: Perl Development Tools
by explorer (Chaplain) on Feb 19, 2006 at 23:39 UTC
    Thanks to everybody for your help... I filled the table with all your notes. And moved to this node.
      I'd find your table easier to read if you'd stick an   in each of the empty cells.
Re: Perl Development Tools
by wazoox (Prior) on Feb 20, 2006 at 13:23 UTC
    I use nedit (http://nedit.org) and here what it provides :
    Name : nedit
    Perl exclusive :no
    Free :yes (GPL)
    Perl engine :any
    Syntax checking :yes (thru macros)
    Syntax coloring :yes
    Auto indent :yes
    Incremental search :yes
    Bracket matching :yes
    Folding :no...
    Debugger :thru macros
    Stepping :thru macros
    Breakpoints :thru macros
    Watches :thru macros
    Bookmarks :thru macros
    Suggest & complete :thru macros
    Identify errors : no
    Interactive Shell :sort of...
    Code Snippets what's this ?
    Var tree :no
    Var evalution :thru macros
    Stack module :no
    Code browser :thru MENhir add-on
    Project : thru macros
    Control version :thru macros
    Multi document : yes
    Split View :yes
    IME :what's this?
    Docs & Help viewer :thru macros
    Module installer :no
    WEB : no
    FTP :thru neftp addon
    HTML export :thru macros
    Linux :yes
    Mac OS X :yes (with X11)
    Solaris :yes
    Windows :yes (with cygwin)
    And of course it works with most languages out there.
Re: Perl Development Tools
by jimbojones (Friar) on Apr 06, 2006 at 21:11 UTC
    Hi

    Just as an update for Eclipse/EPIC. It does support code snippets. Try Preferences->Perl EPIC->Templates.

    HTH, Jim

Re: Perl Development Tools
by naikonta (Curate) on Nov 23, 2007 at 14:39 UTC
    Great and useful table. I think it would be easier if you use different colors for odd and even rows instead of different colors for 'y', 'n', and other cells.

    Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!

Re: Perl Development Tools
by Anonymous Monk on Feb 02, 2009 at 23:46 UTC

    Here is the summary feature details for the Zeus IDE:

    http://www.zeusedit.com

    • Name: Zeus
    • Perl exclusive: no
    • Free: no (Shareware)
    • Perl engine: any
    • Syntax checking: yes (thru tools)
    • Syntax coloring: yes
    • Auto indent: yes
    • Incremental search: yes
    • Bracket matching: yes
    • Folding: yes
    • Debugger: yes (thru gdb)
    • Stepping: yes
    • Breakpoints: yes
    • Watches: no
    • Bookmarks: yes
    • Suggest & complete: yes (ctags info)
    • Identify errors: yes
    • Interactive Shell: no
    • Code Snippets: yes (templates)
    • Var tree: no
    • Var evalution: no
    • Stack module: no
    • Code browser: yes (ctags info)
    • Project: yes
    • Control version: yes
    • Multi document: yes
    • Split View: yes
    • IME: no
    • Docs & Help viewer: yes
    • Module installer: yes
    • WEB: no
    • FTP: yes
    • HTML export: no
    • Linux: no
    • Mac OS X: no
    • Solaris: no
    • Windows: yes

    Cheers Jussi

Re: Perl Development Tools
by Anonymous Monk on Apr 24, 2009 at 22:40 UTC
    Great listing, thanks a lot. One thing I'm looking for is an editor that supports indenting the way that emacs does it - e.g. whenever you press TAB, emacs will adjust the indentation of the current line, regardless of where in the line you have the cursor. This could also mean reducing the indentation of the current line. Most editors will simply just insert a tab character, or a number of spaces.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://531175]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (11)
As of 2014-09-02 12:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (22 votes), past polls