



The Code menu gives a keybinding of "Ctrl+Shift+U" for "Make Lowercase", but when I try this, the selection is replaced by the letter "u" and the cursor no longer moves. What's going on?
Some Linux platforms use the Shift-Ctrl-U as an signal to move into an in-place Unicode Input Method Editor (IME), and Komodo can't override that to implement the lowercase-selection command. However this isn't the case on all Linux platforms, and we can't have Komodo determine it at runtime either.
If you're on Unix, you can use the Preferences|Editor|Key Bindings to assign this command to a new key binding; I found [Ctrl K + L] is as memorable as the default key sequence, and it isn't being used.
If you do end up in this IME mode, you can press the Escape key to get out of it.
My Perl program works great, until I compile it with PerlApp. When I run the executable, I get the error message "Unrecognized character \xEF at foo.pl line 1."
Fortunately, this one has an easy, though easy-to-miss solution.
The file is saved in Unicode, and there is a Byte-Order Mark (BOM) present. A BOM helps a text editor figure out what byte order the file is saved in, but it can cause problems with PerlApp and other tools.
The solution is to save the file (or a copy of the file) without a BOM, and use that copy of the file when running PerlApp.
Using Komodo you can turn off BOMs for the current file by going to Edit | Current File Settings and deselecting "Use signature (BOM)". Other editors will do it different ways, but it's almost always possible -- check the manual or help system for your editor.
When I use PerlApp with Perl 5.8 the resulting executable is several times larger than when I used Perl 5.6. How do I make it smaller?
More than a few people are surprised when they upgrade to PDK 6.0.x and ActivePerl 5.8. In addition to being more solid than ActivePerl 5.6 with PDK 5, the freestanding executables are sometimes three or four times larger.
There is one word that is responsible for much of this apparent bloat: Unicode.
When PerlApp puts together an executable in freestanding mode, it has to be sure to include all required modules and their contingent bits and pieces. Because PerlApp can't tell if a conditionally required module will be needed, it includes it to be on the safe side. Often, this is how the Unicode modules (which aren't all that big) and the translation tables (which are that big) get involved.
The easiest way to cure this problem is to trim out the Unicode modules and related files using the PerlApp graphical user interface, or --trim arguments on the command line. Whichever way you choose, you should be aware that some modules generate and use Unicode internally. If your application begins to fail after removing the Unicode modules and/or translation tables, you will need to play with it a bit to figure out which are needed and which aren't for your given application.
The best way to get the initial settings correct is to use the PerlApp graphical interface. There you can see which modules and extra files will be included, and have the opportunity to trim them out. When you have everything set up correctly, the Output tab of the graphical interface will show you the command line you need to use to reproduce the build with those settings.
This should bring the size down substantially. If it does the trick for you, let me know and I will give some rough numbers that I hear from people as examples in a future version of this entry.