While it depends greatly on the task at hand, some reasons I
have not used ksh or bash for development are (in no particular
- If you have a situation requiring lots of operations where
the shell would fork a simple program (e.g. date, rm, ln) and
where perl would do it directly, the fork overhead may be very
- Perl code can be easier to maintain. Some shell-only
programmers may disagree, but I tend to forget why I did
certian "tricks" in shell scripts. But I can generally figure
out my old perl scripts.
- Perl has better support for functions.
- Perl expressions are generally easier to follow than calls to
- It is probably easier to find new good Perl programmers to add
to a team than to find new good ksh programmers.
I am in the process of converting most of my non-trivial
shell scripts to perl. I recently tried to explain two large
scripts, one perl one shell, to a group of inexperienced
programmers. They could follow the perl, but not the shell,
and the shell was much simpler code, honestly. The issue in
that case was that the shell required verboseness and tricks
that were not necessary in perl.