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
perldebug which gives you all the debugging functions you are ever likely to want, albeit with a rather intimidating command line interface. BBEdit 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
perldebug properly though — I might spend less time going around in circles when trying to get scripts to work.