Perl
Perl (Practical Extraction and Report Language) is a language that has its origins firmly in the culture surrounding the Unix operating system. Part of the Unix philosophy dictates that there should be many specialist tools and some powerful (script-based) ways of driving these tools and combining them to do specific tasks. As the number of tools increased, and variations in the way particular, well-known tools work emerged it became difficult to stitch together separate tools to perform complex jobs. In these circumstances, we'd prefer to have a single, powerful scripting language than many small tools and a simple "glue" language. Perl incorporates many of the features of the Unix shell scripting languages and individual Unix tools (such as Awk, Sed and Grep). This means that Perl has a number of powerful features built into the core language, such as regular expression searching and data structures such as hash tables and automatically resizable arrays. There are many special-purpose constructs and many individual language features borrowed from other Unix tools.
For many years Perl has been available on a diverse range of platforms including Macintosh, Windows and almost every type of Unix-like operating system. Sponsorship by Microsoft has allowed ActiveState Corporation to perform Windows integration work with Perl. The result of this is that access to parts of the Windows API and to COM/ActiveX-based applications has become straightforward.
Further information can be found at http://www.perl.com/
Perl (Practical Extraction and Report Language) is a language that has its origins firmly in the culture surrounding the Unix operating system. Part of the Unix philosophy dictates that there should be many specialist tools and some powerful (script-based) ways of driving these tools and combining them to do specific tasks. As the number of tools increased, and variations in the way particular, well-known tools work emerged it became difficult to stitch together separate tools to perform complex jobs. In these circumstances, we'd prefer to have a single, powerful scripting language than many small tools and a simple "glue" language. Perl incorporates many of the features of the Unix shell scripting languages and individual Unix tools (such as Awk, Sed and Grep). This means that Perl has a number of powerful features built into the core language, such as regular expression searching and data structures such as hash tables and automatically resizable arrays. There are many special-purpose constructs and many individual language features borrowed from other Unix tools.
For many years Perl has been available on a diverse range of platforms including Macintosh, Windows and almost every type of Unix-like operating system. Sponsorship by Microsoft has allowed ActiveState Corporation to perform Windows integration work with Perl. The result of this is that access to parts of the Windows API and to COM/ActiveX-based applications has become straightforward.
| Advantages | Disadvantages |
| Large, well-established user base. | Perl has innumerable inconsistencies and quirks. |
| There is considerable demand for good Perl programmers. | Advanced Perl code can be quite unreadable. |
| Perl is popular with Unix systems administrators due to the origins of the language. | The language has many implicit features that aren't apparent from the syntax. (For example expressions that evaluate differently depending on their context.) This makes Perl difficult to debug and to secure. As Tony Hoare would say "there are no obvious bugs..." |
| Powerful built-in text manipulation features. | Poor integration with the Java virtual machine. At present there is no JVM-based Perl interpreter. |
| COM, ActiveX and WSH supported on Windows. | |
| Freely available on many, diverse platforms. | |
| Where scripts are used to create interactive websites, many hosting services will only support Perl. | |
| The Comprehensive Perl Archive Network (CPAN) provides a large, web-based library of reusable Perl code. |
Further information can be found at http://www.perl.com/