拙著『すぐわかるオブジェクト指向Perl』の補完シリーズ。
今回が最終回だ。

いちおう前回までのあらすじ。

『すぐわかるオブジェクト指向Perl』にはCalendar.pmというモジュールをCPANからインストールできるCPANモジュールの代表として使っていた。
しかし本が出版された後で、Calendar.pmはcpanコマンドによるインストールが出来なくなった。

イジハピ! : 【第508回】『すぐわかるオブジェクト指向Perl』補遺〜CalendarモジュールがCPANから入らない?

tarball(tar.gz形式のファイル)はCPANサイトに置いてあるので、それをダウンロードしてmakeすることはできる。
もっとカンタンにはcpanm(cpanminus)コマンドを使うと出来る。
ということでこれまではUbuntu(Linux)、Mac(OS X)へのインストールをやってきた。

イジハピ! : 【第518回】Perl: CPANモジュールをtarballからインストールする(UNIX、root編)

イジハピ! : 【第523回】Perl:Macにcpanmでtarballからモジュールをインストールする

今日がWindowsだ。
結論からいうと、ActivePerlであってもCPANコマンドでcpanmコマンドをインストールして、cpanmコマンドでtarballをインストールすれば一発であった。
ここまで読んで「へー、なるほど」とか「知ってる♡」とか思った方はここから先は読まないでいいです。
「何それ?関係ないし!」と思った人も読まないでいい。
「んん?なになに?」と思った人だけ読んでください。

Jean Etienne Liotard - Portrait of a Young Woman
これまで、以下のような情報を流布してきた。

Windowsで最も一般的に使われるActivePerlはmakeが入っていない。
一般的なモジュールであれば、ppmというユーティリティを使ってActiveState社やウィニペグ大学のリポジトリーからppm形式のモジュールをインストールすれば良かった。
しかしppmが存在しないCPANモジュールも多い。
この場合はMicrosoftのサイトからVisual C++の無償版をダウンロードしてdmakeとvccを使ったり、いろいろ苦労があった。

新進のWindows用PerlであるStrawberry Perlは、makeコマンドや、GNU用のフリーのCコンパイラーgccのWindows版であるMinGWを同梱しているので、CPANコマンド一発でインストールすることが出来る。
ただし新進であるので、ActiveStateであれば標準でついてきたり、ppmリポジトリーに入っているモジュールがついていないこともあり、この場合はいちいちCPANからインストールしなければならないので面倒だ。
一長一短だ。

余談だが、MinGWってなんて読むんだろうか。
ぼくはミングーと読んでいるがそれでいいんだろうか。

そう言っていたのだが、この情報はだいぶ古く、現在はActivePerlでもdmakeとMinGWが同梱されていて、CPANコマンドをバンバン使うことが出来る。

まず、Windowsのコマンドプロンプトから「cpan」とコマンドを起動する。

20140205mingw

makeとCコンパイラーがないけどどうしますか、と言われるが、その後勝手にdmakeとMinGWをインストールしてくれ、「cpan>」プロンプトになる。

ここで「install App::cpanminus」と入力してcpanmをインストールする。
一発でインストールできた。

20140205cpanminus

ここで、「cpanm http://search.cpan.org/CPAN/authors/id/Y/YE/YEWENBIN/Calendar-v0.4.2.tar.gz」と入力してCalendarモジュールをインストールする。
これも一発でインストールできた。

20140205calendar

先々週Ubuntuで実行したテストプログラムも、無事実行できた。

ということで、なんじゃこりゃである。

WindowsはUNIX由来、GNU由来のフリーソフトウェアを使うとイマイチ、一歩遅れるという印象がある。
たまに新しいプログラミング言語の本とか読むと「Windowsユーザーは本書を読む前に、今使っているパソコンにLinuxを入れろ」とか書いてあって瞠目する。(本当にそういう本あったのよ!)
そんなサラリーマンがWindows(というかWord/Excel)を簡単に捨てられたら苦労しないっつうの!
しかしながら、Perlに関してはWindowsでも、Mac/UNIX同様にCPAN、cpanmが使える。
他のモジュールはまだ試していないが、とりあえずCalendarモジュールは使えることが分かったので、安心して『すぐわかるオブジェクト指向Perl』を履修してください。
お騒がせしました。