Web Automation: PHP vs. Perl vs. PHP Page 2
As I mentioned before, both PHP and Perl (as applied to Web applications) are interpreted languages. Interpreted languages are not pre-compiled and executed in a binary format, rather, they are parsed by an interpreter on demand and compiled on-the-fly. Because of this, both Perl and PHP are very portable. Both languages can run on any platform that has an interpreter for the language (with subtle difference here and there).
Another benefit of being interpreted is that the coders can tweak their application and immediately see the results and implement the new code, without having to wait for the application to recompile and relink. On the downside, both PHP and Perl are "slower" and "more costly" than their C or C++ equivalent. What this means is that if you wrote a Perl or PHP application in C, it would run "faster" and use less CPU time. I put "faster" and "slower" in quotes because on the Web, unlike on your desktop, application "speed" is dependent on more factors that just the sheer running time of the application.
Syntax and Core Functions
Both PHP and Perl have their roots in UNIX and UNIX-like operating systems (as well as the C language). For this reason, they both have similar syntax and core functions, such as the "chown" and "localtime" functions.
Integration with Apache
mod_perl and mod_PHP are both very well designed modules that allow the interpreter for the language to be embedded into the Apache Web server itself, speeding up run-time execution and offering a wealth of features above and beyond the standard CGI execution. For example, installing mod_perl on the Apache webserver exposes the Apache C API (Application Programming Interface), which allows you to write Apache server modules in Perl instead of C.
Perl and PHP: Their Differences
Here is where the rifts between these two powerful Open Source communities start forming. There are just as many differences as similarities, and I'm only going to touch upon a few of the ones I think are big and important.
Perl is developed as a versatile, powerful language that is easily (trivially, actually) extensible and can serve billions of purposes. Sure, there is a large segment of the Perl community that work on projects such as mod_perl and write Web-savvy modules, such as Lincoln Stein's CGI.pm module, but the focus of Perl development, as a language, is not based on the Web or the Internet.
PHP is developed for Web automation. PHP developers have added features to make Web content generation trivial, as well as provide easy access (trivial, actually) to a wide range of backend databases. Everything about PHP development screams "give me Web-savvy feature."
PHP appeals greatly to Web-content designers who know HTML inside and out, but want to spice up their site--add a little database interface here, dash a standard "look and feel" template there. PHP also appeals to the person who want to abstract HTML design, from application design. If you want multifile applications that allow you to quickly and painlessly change one file without affecting (we hope) other pages in the application--PHP is your language du jour.
Perl, as far as Web applications go, apply to the more technically minded person, programmer, or power fiend. Perl's infinite extensibility and modular design make it incredibly popular among web application developers who want a single program (usually with a horde of included modules), or a couple programs, to be their application instead of the several hundred HTML pages that the same application might require if it was done in PHP.
I don't know if "embeddable" is a word, but you get the point.