First, go to ActiveState's ActivePerl Site, http://www.activeperl.com. From here you can either click on the "Perl" link in the top banner, or hover your mouse pointer over "Languages" in the red bar and then click on "ActivePerl Family" in the dropbox that appears. On the next page, click on "ActivePerl" under "ActivePerl Family". (You're getting close. Don't give up yet!) At the bottom of the page, click "DOWNLOAD", then either fill in the blanks on the next page or not and click "Next". (ActiveState doesn't require contact info.)

This page gives you several options. The first thing you should do is check out the "minimum requirements" link in the middle column. (The three columns being the download list, an info column, and then the "Register... Download" column. If you're running Windows XP, you're set and don't really need to worry about this. The left column should say "ActivePerl" and then a version number. Choose the most recent version and download the MSI package under the Windows heading.

BEFORE CONTINUING: Make sure you have Administrator privileges on your computer. If you don't, you'll have more work to do after installing.

Simply run the MSI (an executable) and follow the installation guidelines. If, for one reason or another, you cannot install from the MSI, go back to ActivePerl's web space and download the AS package (a .zip file). The ActivePerl site explicitly states, "The Windows AS Package provides NO uninstall functionality, and is recommended only if you are unable to install ActivePerl using the MSI installer." (What this basically means is that you'll have to manually uninstall it if you ever want to get rid of it.)

You can now write Perl programs in any text editor (like Notepad, but turn wordwrap off) and run them through the Command Prompt using the "perl" command, just like all the other OSes. (Command Prompt is in Start > All Programs > Accessories OR Start > Programs > Accessories for non-XP systems.)

This should work for any version of Windows. Please be sure to check the system requirements listed on ActiveState's download page to be sure your machine/OS can handle it.

Good luck!

ADDENDUM
ActivePerl is not the only Perl for Windows out there, it is simply the first that I came accross. As noted by Joost, there is also CygWin at http://www.cygwin.com (directions listed in his reply below). CygWin is basically, for all intents and puposes, a Linix shell emulator for PC. See their site for more details.

I also want to mention a very helpful tool for me when writing is the VI Improved (VIM) text editor, available at http://www.vim.org/. It's free and has many features to help you with coding, including (but not limited to) auto-indenting, color highlighting, and multiple computer language support. VIM is what I learned on in school, used when I had Linux, and is a great tool even on a Windows based machine.

If you install Perl using Cygwin, it will currently install perl 5.10. Cygwin will install 5.14 if you ask it to in the installer GUI, but thereafter, every time you run the Cygwin installer to update any packages, you will have to go back to the entry for Perl and tell it not to uninstall 5.14 and replace it with 5.10, which it always wants to do.

Don't install the AS package unless you absolutely have to do so. It doesn't totally function the same as the version installed by the MSI. ActiveState has this to say about the AS package: "The Windows AS Package provides NO uninstall functionality, and is recommended only if you are unable to install ActivePerl using the MSI installer." (The emphasis was added by me to drive how the point of this reply.)

That's not true (its the same perl).
"Uninstall" functionality is overrated.
All you have to do i delete your perl folder,
and edit the registry removing a few entries the installer (bat file) makes,
which do things like associate perl.exe with .pl files, etc

MJDsays "you can't just make shit up and expect the computer to know what you mean, retardo!"

I know that it's supposed to be but it's not necessarily the same perl. I downloaded and installed it about a year (or year and a half) ago to see what all was different. My guess is that it doesn't set all of the necessary registry settings that the MSI sets. Once it was "installed", there were lots of things that didn't work; one of which was PPM. I know there were other pieces that didn't work either but the moment I can't recall. It's just been too long. This was on a Win98 machine so that might have had something to do with it too.

An even easier method of installing a full working Perl system under Windows is now available: CamelPack. It downloads and installs ActivePerl, Dev-C++ and nmake to provide a Perl environment that is compatible with CPAN (as well as ActiveState's PPM). Here's all you have to do:

Download the setup.exe, and then run it.

For the Dev-C++ pack, you can just install the "MinGW compiler system" option if you don't want the full IDE.

The reason is:
later when adding modules, Makefiles generated by ExtUtils::MakeMaker most probably will not work. The needed extra quoting for spaces in nested Makefile variables is very complex and not supported by MakeMaker.

I often had this problem when being forced to use a company installed perl in C:\Program Files\...

I was recently looking to install perl on my windows machine in order to learn perl and CGI scripting. After I'd installed ActivePerl I then had to find a webserver to use.
XAMPP installed and configured both perl and apache in one go, I'd recommend beginners go straight for that if you're just looking to quickly set up a learning environment

Does XAMPP install a c compiler? The reason I ask is that I would suggest going for Strawberry Perl since I have used it for quite some time (for both business and personal use) with no problems. Being able to use CPAN on windows is a great thing, even if you are just starting out. Installing Strawberry Perl is painless.

I think that using the Strawberry Perl installer and installing/configuring Apache would be worth the extra effort since, had the user never installed/configured Apache my themselves (by this I mean configure httpd.conf etc themselves) then IMHO it is good to know how to do this sort of thing.

Ada Lovelace for the palindrome
Albert Einstein for having smelly feet
Alfred Nobel for his contribution to battlefield science
Burkhard Heim for providing the missing link between science and mysticism
Claude Shannnon for riding a unicycle at night at MIT
Donald Knuth for being such a great organist
Edward Teller for being the template for Dr. Strangelove
Edwin Hubble for pretending to be a pipe-smoking English gentleman
Erwin Schrödinger for cruelty to cats
Hedy Lamarr for weaponizing pianos
Hugh Everett for immortality, especially for cats
Isaac Newton for his occult studies
Kikunae Ikeda for discovering the secrets of soy sauce
Larry Wall for his website
Louis Camille Maillard for discovering why steaks taste good
Marie Curie for the shiny stuff
Nikola Tesla for the cool cars
Paul Dirac for speaking one word per hour when socializing
Richard Feynman for his bongo skills
Robert Oppenheimer for his in-depth knowledge of the Bhagavad Gita
Rusi P Taleyarkhan for Cold Fusion
Sigmund Freud for his Ménage ā trois
Theodor W Adorno for his contribution to the reception of jazz
Wilhelm Röntgen for the foundations of body scanners
Yulii Borisovich Khariton for the Tsar Bomba
Other (please explain why)