Regular readers will know that I'm learning Perl, and always on the lookout for good books, tutorials or tools to help me along. So I was quite excited to see it mentioned on TidBITS that Late Night Software have just brought out a Perl editor and debugger called Affrus. I know that many Perl aficionados maintain that you don't need an IDE for Perl, but the fact that the question is a FAQ on Perldoc.com suggests that many people still want one.
It's true that with
use strict; and
use warnings; you get a pretty
good idea where your code is going wrong. There's also
which gives you all the debugging functions you are ever likely to want,
albeit with a rather intimidating command line interface.
has excellent Perl support (including the ability to run a script and
see the output, and to look up the documentation for functions in
perldoc), as do vi or vim if you
use the appropriate plugins. But I was curious to see what else it could
offer, and downloaded the demo. The interface is quite clean, with a
single editing window for the code, with tabs at the top to open the
variables, errors or debugging windows. The editor has nice syntax
highlighting, but otherwise isn't quite as fully featured as BBEdit.
However, the developers have thoughtfully added an "Edit in BBEdit"
menu item, so that users of BBEdit get the best of both worlds. I tried
writing a simple script and debugging it with Affrus, and it certainly
made it easier to see where my rather stupid errors were. You can step
through code, or let it run to a breakpoint, and the values of all the
variables are displayed in a window for your inspection. Another nice
touch is that you can save any number of different command line
arguments to be passed to your script so that you can select the
appropriate one from a popup menu when you run it.</>
ght Software are also well known for their Applescript products, and
Affrus seems to be highly scriptable; so if it doesn't work in the way
you want, you can probably write an Applescript to make it so (bsag does
Jean-Luc Picard 'pointing gesture'). It seems a neat and
well-integrated solution, but I think I'll stick with my existing tools
for the moment. It has encouraged me to learn how to use
properly though — I might spend less time going around in circles when
trying to get scripts to work.