Perl is a general purpose computer programming language used mostly for web development, but for other functions a well. It’s one of the older programming languages, with Perl 1 being developed in 1987. Perl 5 (the latest version) has been in use since 1994.

Perl is an extremely flexible programming language that was originally intended to take lots of pieces of texts and combine them to form complete documents. Fortunately, that’s essentially what server-side web development is. Originally built for UNIX, Perl has been adapted to every single platform and it can perform lots of different tasks, making it one of the most versatile languages out there for server-side web development.

First, Perl has been around for a long, long time, so it has an exceptionally well-developed library and support network (CPAN).

One key function of Perl is to create dynamic web content via CGI. It’s uniquely suited to this task, and despite the proliferation of a variety of other languages, Perl remains key in this arena. There are, of course, other functions that Perl can fulfill as well, such as the ability to read and write TCP/IP sockets, send or validate email, read a spreadsheet, and execute Cron jobs, just to name a few. Plus, it does all of these in rapid development cycles, which enormously speed up the time it takes to prototype something (great for security).

Finally, Perl is an interpreted language, which means that it’s clos(er) to a what you see is what you get programming language. This in theory makes it easier to learn, but many argue that’s not actually the case with Perl.

Like anything, there are some downsides to Perl as your language of choice. First, despite what the Perl community in general says, it’s not so good at writing big, complicated programs. It’s much better suited to short snippets of code to solve simple problems. Second, while Perl is infinitely flexible, it means that there’s always about 10 different ways to do the same thing, which makes it hard if one way is going to work. The lack of continuity also means it takes a lot longer to learn than other, more structured languages like Python. Another result of its flexibility and its one-tool-one-function philosophy (which then all get piped together through the UNIX piping system) means that Perl tends be much more difficult to maintain over time. Finally, Perl is downright unreadable if it’s coded by anyone but highly experienced programmers, which means that there’s a lot of code out there that’s bewildering and obfuscated.

Not at all! The most important thing when you’re picking any language is to find one that’s going to work for you. If you’re more comfortable with php or Python, then that’s fine – it’s extremely unlikely that a hosting company isn’t going to support those as well. You might find that knowing some Per would be worthwhile though, to add to your writing repertoire. That way, you always pick the right tool for the job.

Well, yes and no. First, Perl is a interpreted language, which means that it’s generally faster to write and develop with. But in terms of running speed once Perl scripts are deployed, then interpreted languages can be a little slower and use a little more memory. Complicated Perl programs in particular tend to be a little slow to start up, since Perl has to compile the source every time it runs.

Apache’s Mod Perl and Microsoft ISAPI’s ActivePerl both work to combat this problem, although a lot of programmers are simply turning to complied languages like C.

While Perl will work best on a UNIX platform, since that’s where it came from, it will work reasonably well on any of the common ones. Mac OS X (since it’s basically UNIX) runs Perl very well. It will also run on Windows well enough, and most scripts written for UNIX will work on Windows, but it’s not optimized for that environment. Finally, as with Mac OS X, UNIX variations like Linux or Solaris will handle Perl well enough for the same reasons that Mac OS X does.

It’s much less a matter of using or not using Perl, and more an issue of picking the right tool for the job. You want to use Perl because sometimes, it’s going to be the best tool for the job. For example if you’re looking to program a CGI, then the CGI.pm module is probably going to be a good option. Other tasks might be better suited to object-orientated languages like Python – it just depends on what you’re trying to do.

Great question! CPAN stands for Comprehensive Perl Archive Network and is essentially a giant repository of various Perl scripts, or modules. Because of the freedom inherent in Perl vs other languages like C or Ruby, there’s plenty of solutions to evert single problem. The result is CPAN – a huge (150,490) collection of modules that people from all over the world have uploaded. It’s the number 1 benefit of Perl – for the vast majority of coding challenges, someone else has already solved it, and all you have to do is take it, install it via a Perl module installer, and you’re all set! Plus, if one solution doesn’t work for whatever reason, there are lots of other modules you can try. While most open source languages will have at least something like CPAN, it’s one of the oldest (1995) and is one of the most comprehensive.

Intel Xeon processors are Intel’s commercial grade processors and are used in servers, embedded systems, or high end work stations. Xeon processors support more cores than consumer counterparts (like the i7), they support ECC memory, and most importantly for servers have multi-socket capability. The reason you’ve never heard of them is that they’re a commercial grade product only, and are part of Intel’s B2B offering.

Great question. Aside from the questions around whether or not companies are even allowed to claim ‘unlimited’ when they have limits, almost every single web hosting company claims to have at least one of their attributes as unlimited. Usual suspects are databases, storage, and bandwidth or transfers.

What they actually mean is that for most people who are legitimately using their services, then the upper limit is so crazy high that it’s virtually unlimited. Even if, for example, your website hits the front page of Reddit and starts trending on Twitter and Facebook globally, the limit is still out of reach. For you, it’s a way of saying that they’ll host your site, and it won’t break down at the worst possible moment. The problem is that if they didn’t clarify this in their terms of service, then people could misuse their shared web hosting accounts as reseller accounts, cloud storage, or any other non-web hosting thing, and it would affect everyone on that server and the company would be powerless to stop it.

What it boils down to is if you use your account the way its intended, there’s no practical limit. If you abuse your account, then the company has grounds to kick you off the server or throttle your traffic.