基本的には「Perlメモ/モジュールのインストール(CPAN) - Walrus, Digit.」にある情報に従っていきます。
現時点で変わっている部分を中心に補足します。
しかし、結果的に挫折しましたので、試行錯誤の記録になっています。
個人的にはモジュールを自分の環境に合わせて変更することで落ち着きました。


ActivePerlがインストールされた状態からスタートします。
ActivePerl配布場所からダウンロードできます。
名前などを入れる場所がありますが、全てオプションなので、入力しなくてもダウンロードできます。
tarとgzip」 [Perlメモ/モジュールのインストール(CPAN) - Walrus, Digit.] は問題ないでしょう。
texinst756.zip」 [Index of /pub/text/TeX/ptex-win32/current] あるいは、その最新版を手に入れます。
続いて「makeとCコンパイラ」 [Perlメモ/モジュールのインストール(CPAN) - Walrus, Digit.] です。
Visual C++」 [Visual Studio 2008 Express Editions] をインストールします。
(最小限でインストールしても概ねOKのようですが、msvcr90.dllが見つからないエラーの関係でオプションをつけて改めてインストールしたため検証は出来ていません(詳細は後述)。)
ここまできたらcpanをセッティングします。
最近のActivePerlでは、binフォルダにcpan.batがあるので、コマンドプロンプトでbinフォルダ(デフォルトなら”C:\Perl\bin”)に移動して「cpan」とタイプすれば起動できます。
(pathが通っていれば「ファイル名を指定して実行…」(ショートカット:windowsボタン+R)から「cpan」とかも可能。)
コマンドプロンプトですが、プログラムメニューから「Visual Studio 2008 コマンド プロンプト」を使うとpathの設定が少ないのでよいと思います。
(スタート→すべてのプログラム→Visual C++ 9.0 Express Edition→Visual Studio Tools→Visual Studio 2008 コマンド プロンプト)
起動すると、以下のような画面になると思います。

1
2
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
C:\Program Files\Microsoft Visual Studio 9.0\VC>

私はActivePerlのインストール先を「D:\usr」に変更していますので、そちらに移動し、cpanを起動します。

1
2
3
4
5
6
C:\Program Files\Microsoft Visual Studio 9.0\VC>d:
D:\>cd usr\bin
D:\usr\bin>cpan
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support enabled
cpan[1]>

(ブログを書く前にセッティングをしているので多少の違いはあるでしょうが、あまり細かい部分は気にしないでいきましょう。)
cpanの初期設定は、cpanが起動した状態から「o conf init」と入力します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cpan[1]> o conf init
Use of uninitialized value $_ in transliteration (tr///) at D:/usr/lib/File/Spec
/Win32.pm line 141.
Use of uninitialized value $_ in pattern match (m//) at D:/usr/lib/File/Spec/Win
32.pm line 143.
Use of uninitialized value $_ in transliteration (tr///) at D:/usr/lib/File/Spec
/Win32.pm line 141.
Use of uninitialized value $_ in pattern match (m//) at D:/usr/lib/File/Spec/Win
32.pm line 143.
CPAN is the world-wide archive of perl resources. It consists of about
300 sites that all replicate the same contents around the globe. Many
countries have at least one CPAN site already. The resources found on
CPAN are easily accessible with the CPAN.pm module. If you want to use
CPAN.pm, lots of things have to be configured. Fortunately, most of
them can be determined automatically. If you prefer the automatic
configuration, answer 'yes' below.
If you prefer to enter a dialog instead, you can answer 'no' to this
question and I'll let you configure in small steps one thing after the
other. (Note: you can revisit this dialog anytime later by typing 'o
conf init' at the cpan prompt.)
Would you like me to configure as much as possible automatically? [yes]

「Use of uninitialized value」というエラーが出ることがあります(ここでは出ています)が、一応は無害なのでここでは無視します。
最後の質問は「できるだけ自動的に設定しますか?」と訊かれています。
[yes]は、省略してEnterを押したときに「yes」と入力されたことにする、という程度の意味です。
ここでは、ひとまず、プログラムに任せて設定してもらいます。

1
2
3
4
Autoconfigured everything but 'urllist'.
Please call 'o conf init urllist' to configure your CPAN server(s) now!
commit: wrote 'D:\usr\lib/CPAN/Config.pm'
cpan[2]>

「urllist」以外は設定されているはずです。
ついでなので「urllist」も設定しておきましょう。
設定するときは「o conf init urllist」です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
cpan[2]> o conf init urllist
Use of uninitialized value $_ in transliteration (tr///) at D:/usr/lib/File/Spec
/Win32.pm line 141.
Use of uninitialized value $_ in pattern match (m//) at D:/usr/lib/File/Spec/Win
32.pm line 143.
Use of uninitialized value $_ in transliteration (tr///) at D:/usr/lib/File/Spec
/Win32.pm line 141.
Use of uninitialized value $_ in pattern match (m//) at D:/usr/lib/File/Spec/Win
32.pm line 143.
Found D:\usr\cpan\sources\MIRRORED.BY as of Tue May 6 10:14:04 2008
I'd use that as a database of CPAN sites. If that is OK for you,
please answer 'y', but if you want me to get a new database now,
please answer 'n' to the following question.
Shall I use the local database in D:\usr\cpan\sources\MIRRORED.BY? [y]
Now we need to know where your favorite CPAN sites are located. Push
a few sites onto the array (just in case the first on the array won't
work). If you are mirroring CPAN to your local workstation, specify a
file: URL.
First, pick a nearby continent and country by typing in the number(s)
in front of the item(s) you want to select. You can pick several of
each, separated by spaces. Then, you will be presented with a list of
URLs of CPAN mirrors in the countries you selected, along with
previously selected URLs. Select some of those URLs, or just keep the
old list. Finally, you will be prompted for any extra URLs -- file:,
ftp:, or http: -- that host a CPAN mirror.
(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
(8) (edit previous picks)
Select your continent (or several nearby continents) [8] 2
(1) China
(2) Hong Kong
(3) Indonesia
(4) Israel
(5) Japan
(6) Korea
(7) Pakistan
(8) Republic of Korea
(9) Russia
(10) Saudi Arabia
(11) Singapore
(12) Taiwan
(13) Thailand
(14) Turkey
(15) (edit previous picks)
Select your country (or several nearby countries) [15] 5
(1) ftp://ftp.dti.ad.jp/pub/lang/CPAN/ (previous pick)
(2) ftp://ftp.jaist.ac.jp/pub/CPAN/ (previous pick)
(3) ftp://ftp.kddilabs.jp/CPAN/ (previous pick)
(4) ftp://ftp.nara.wide.ad.jp/pub/CPAN/ (previous pick)
(5) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/ (previous pick)
(6) ftp://ftp.u-aizu.ac.jp/pub/CPAN (previous pick)
(7) ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ (previous pick)
(8) http://ppm.activestate.com/CPAN (previous pick)
(9) http://cpan.perl.org (previous pick)
Select as many URLs as you like (by number),
put them on one line, separated by blanks, hyphenated ranges allowed
e.g. '1 4 5' or '7 1-4 8'
(or just hit RETURN to keep your previous picks) [1 2 3 4 5 6 7 8 9] 1-9
Enter another URL or RETURN to quit: []
New set of picks:
ftp://ftp.dti.ad.jp/pub/lang/CPAN/
ftp://ftp.jaist.ac.jp/pub/CPAN/
ftp://ftp.kddilabs.jp/CPAN/
ftp://ftp.nara.wide.ad.jp/pub/CPAN/
ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
ftp://ftp.u-aizu.ac.jp/pub/CPAN
ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
http://ppm.activestate.com/CPAN
http://cpan.perl.org
Please remember to call 'o conf commit' to make the config permanent!
cpan[3]>

Asia→Japan→すべて(「1-9」など)としておき、それ以外の質問にはデフォルトで問題ないでしょう。
仕上げに、変更したurllistを保存するためにコミットしておきます。

1
2
3
cpan[3]> o conf commit
commit: wrote 'D:\usr\lib/CPAN/Config.pm'
cpan[4]>

cpanはこれで設定完了です。
多くはこの状態でインストールが可能でしょう。
しかし、実行時に「msvcr90.dllが見つからない」というエラーが出る場合があります。
当初は「Visual C++」をインストールする際に、最小限(オプションを全てはずして)でインストールしましたが、このエラーが出たため、改めてオプションを全てチェックして再インストールしました(結果的に「Microsoft Silverlight runtime」はインストールに失敗)が、それでもエラーは出たままでした。
念のため「vcredist_x86.exe」 [ダウンロードの詳細 : Visual C++ 2008 再頒布可能パッケージ (x86)] をダウンロードしてインストールしてみましたが、解決しませんでした。
その後、msvcr90.dllと同じフォルダにあるファイルをすべてpathの通ったところにおいて実行してみましたが、今度はランタイムエラー(R6034エラー)になってしまいました。
いろいろ調べたところ、原因が「ExtUtils::MakeMaker」にあるのではないかという記述を見つけました。

ExtUtils::MakeMaker モジュールが Windows 版 ActivePerl 向けに生成する Makefile は、Windows XP (および Windows Server 2003) + Visual C++ 2003/2005 の環境 (いや、実際、VC++ 2003 では試したことないので知らんのですが、システム DLL に Manifest の概念が導入されたのがどうやらこいつかららしいので、多分間違いないかと) で nmake → nmake install しても、use する際に R6034 エラーが発生してモジュールのロードに失敗してしまうという問題があります。

1年以上前の記事なので、不思議に思いながらソースを見てみました。
結果からすると原因はおそらく「$Config{ccversion}」です。
「perl -V」でperlがどのようにコンパイルされたのか等の細かい情報が出てきますが、ActivePerl(5.10.0 Build 1002)は、この「ccversion」が「12」なのです。
おそらくこの数字が使われているのでしょう。
manifestの概念が導入されたccversionは14以降らしく、ExtUtils::MM_Win32のソースコードにもその記述がありました。
本来であれば、perl本体に使用したCコンパイラを使う、という想定でしょうから、ソースコードとしてもおかしくは無いと思います。
現在の環境のccやccversionを設定する処理をどこかにいれておけばいいのでしょうかね?

ExtUtils::MakeMakerは、最新版(ExtUtils::MM_Win32が

1.15のやつ)を入れれば、パッチを当てなくても大丈夫でした。

[Windowsのフリーウェア、フリーソフトを紹介 - KOCのブログ | Windowsで、CPANからモジュールを入れる方法(補足)]

気になったので1.15のソースも見てみましたが、処理の仕方は同じでした。
とりあえず、自分の環境だけなら問題ないので、バージョン判定の部分を削除して使うことにしました。

1
2
#     if ($Config{ivsize} == 4 && $Config{cc} eq 'cl' and $Config{ccversion} =~ /^(\d+)/ and $1 >= 14)
if ($Config{ivsize} == 4 && $Config{cc} eq 'cl')

何か良い方法を思いついたら書くことにします。