ActiveState Home Page       Win32 FAQ


文書名

perlwin32faq1 - 入手方法とインストール



概要

Perlの入手先、インストール、利用方法



Perlとは何ですか?

Perlとは、システム管理及びWorld Wide Webのプログラミングに広く利用されているスクリプト言語です。UNIXコミュニティ生まれのため結構UNIX寄りのところがありますが、Win32プラットホームの利用者が急激に増加しています。Win32用リソースキットを利用すれば、Win32でもUNIXシステムと同等の力を発揮するようになります。

perl(小文字の'p')とは、Perl言語を解釈して逐次実行するプログラムのことです。



Perlについての情報はどこで入手できますか?

Perl自体に大量のオンラインドキュメントが付属しています。それらのドキュメントはperldocコマンドで見ることができます。 具体的には、perldoc document_nameのようにします。 最初はPerlとPerlFAQが手頃でしょう。(当ドキュメントのHTML版を含む)Perlドキュメントにアクセスする他の方法については、Perl for Win32用のドキュメントはどこで入手できますか?を参照して下さい。

Perlに関するその他の情報の入手先は、以下のURLを確認して下さい。:

Perlに関する書籍もよいものが何冊か出ています。Perl for Win32の入門書としては、Schwartz、Olson、Christiansen による「初めてのPerl Win32システム」(オライリー・ジャパン発行)があります。 これは表紙にヤモリ(大きな足と笑い顔を持った、小ぶりで丸っぽいトカゲ)の絵があるので、ヤモリ本と呼ばれています。

一般のperl用としては、忘れてはならない本が2冊出ています。 Larry Wall、Tom Christiansen、Randal L. Schwartz による「プログラミングPerl 第2版」(オライリー・ジャパン発行)と Randal L. Schwartz による「初めてのPerl」(オライリー・ジャパン発行)です。 これらは、Perl愛好者の間で同様にラクダ本(訳注:第2版を指して青ラクダともいう)、リャマ本と呼ばれています。

Perlが初めてで、このFAQに記述されている用語によくわからないものがある場合は、上記のリソースを当たってみるとよいでしょう。詳しくは、Perlに付属しているperlbookドキュメントを参照してください。



Perl for Win32インタプリタはどこで入手できますか?

Perl for Win32パッケージは、ActiveState及びCPAN(Comprehensive Perl Archive Network)からanonymous FTPで入手することができます。

ActiveStateからダウンロードするには、次のディレクトリを当たってみてください。

  http://www.ActiveState.com/pw32/


ActiveStateのPerl for Win32を入手したのですが、どうすればよいのでしょうか?

ActiveStateのPerl for Win32は、標準のPerlに基づいた自動インストール型のPerlディストリビューションです。ActiveStateのサイトでオンラインディストリビューションされており、Win32用リソースキットがバンドルされています。詳しくは、 http://www.ActiveState.com 及び http://perl.oreilly.com を参照してください。

``Perl for Win32'' とは、通常ActiveStateのPerlのリリースを指しています。

Perl for Win32 は、Microsoft社向けにActiveState Tool社(旧Hip Communications)によって開発されました。その努力は、Microsoft社のWindows NTリソースキットに含めるためのものでした。

以来ActiveState及びさまざまなポータがPerl標準リリースとPerl for Win32を同期させるために働いてきました。一つのPerlへの尽力、ActiveState、さまざまなボランティアが一体となった努力がWin32と標準のPerlソースコードを共通のソースツリーとしてまとめ上げたのです。

オライリー社のResource Kit for Win32には、perl、PerlIS、Perl Debugger、ActiveStateが開発したWin32特有のモジュールやツールが含まれています。



Perl for Win32パッケージをインストールするにはどうすればよいのでしょうか?

ダウンロードしたアーカイブをダブルクリックするだけです。後はインストールウィザードによるインストールプロセスが導いてくれます。 インストールしたいPerlパッケージやインストールしたい場所等を指定することもできます。



Perl for Win32のインストールをカスタマイズするにはどうすればよいのでしょうか。

注意: 次の情報は、バージョン別にperlをインストールする場合のみに適用されるものです。新しいバージョンのActivePerlでは、デフォルトで簡単な(バージョン別ではない)インストール構造を取るようになっています。 詳しくはこちらに掲示してあります。 バージョン別のインストール方法の詳細はperlwin32ドキュメントを参照してください。

Perlはuserequireで指定したファイルを検索するパスとして、配列@INCを使用します。 (perl -Vを実行すると、最後に@INCの中身が表示されます。) これは、実行時に use lib 'directory_to_add' で操作できます。また、レジストリや環境変数を設定することでも操作可能です。 デフォルトでは、次のディレクトリが@INCにセットされます。:

    <myperldir>/site/<version>/lib/<architecturename>
    <myperldir>/site/<version>/lib
    <myperldir>/<version>/lib/<architecturename>
    <myperldir>/<version>/lib

<myperldir>はC:\PerlのようなPerlのホームディレクトリを示しています。 <architecturename>は、MSWin32-x86やMSWin32-Alphaなどにあたります。

レジストリに登録することでカスタマイズできる設定もいくつかあります。 [HKEY_LOCAL_MACHINE/Software/Perl/] 及び[HKEY_CURRENT_USER/Software/Perl/]のキーの下に次の文字列を追加します。

    LIB
    LIB-<perlversion>

例)


    LIB
    LIB-5.0050

これでデフォルトのlibパスに指定したディレクトリが追加されます。 (Perl 5.005ではC:\Perl\5.00500\lib\MSWin32-x86C:\Perl\5.00500\libとなります。」) 複数のバージョンのPerlをインストールしている場合、LIB-<perlversion>を使うと、特定のバージョンのPerl用にパスを変えることができるようになります。

    SITELIB
    SITELIB-<perlversion>

例)


    SITELIB
    SITELIB-5.0050

これは、指定したディレクトリがデフォルトのsitelibパスに追加されます。 (Perl 5.005では、C:\Perl\site\5.00500\lib\MSWin32-x86C:\Perl\site\5.00500\libC:\Perl\site\libとなります。) 複数のバージョンのPerlをインストールしている場合、SITELIB-<perlversion>を使うと、特定のバージョンのPerl用にサイトパスをカスタマイズできるようになります。

[HKEY_CURRENT_USER/Software/Perl][HKEY_LOCAL_MACHINE/Software/Perl]より先に検索されます。したがって、ユーザ単位でPerlをカスタマイズすることも可能です。

さらに、環境変数Perl5libをセットしておくと、その値も@INCに追加されます。 調べられる順序としては、環境変数Perl5libが最初で、次に上記のレジストリという順になります。



Perl for Win32をアンインストールするにはどうすればよいのでしょうか?

コントロールパネルの「アプリケーションの追加と削除」でリストボックスからPerl for Win32を選択し、「追加と削除」をクリックします。



ActiveX Scriptingとは何ですか?

ActiveX Scriptingとは、マイクロソフト社の技術で、スクリプトエンジンとスクリプトホストから構成されます。 PerlScript、VBScript、JScriptなどのスクリプトエンジンはプログラミング言語で、 Windows Scripting Host、Microsoft Exchange、ASP(Active Server Pages)などのスクリプティングホストに埋め込むことができます。



ActiveX Scriptingに使用できるPerlはあるのでしょうか?

はい、PerlScriptと呼ばれているものがあります。 Perl for Win32パッケージの1部で、インストール中にインストールするかどうか指定できます。

PerlScriptは、Microsoft Internet Explorer 4.0、Microsoft Exchange、Windows Scripting HostなどのActiveX Scripting Hostで使用することができます。



Win32プラットホームで利用可能なスクリプティング言語は他に何がありますか?

バッチ言語やQBASIC(Windows95やWindows NTに付属している16bitの BASICインタープリター)でプログラムすることもできますが、まっとうなプログラマーは、下記のような別のオプションを選択するでしょう。:

Python

非常に多機能の言語で、オブジェクト指向プログラミング(OOP)、ネットワーキング、CGI、データベース、GUI プログラミングなどに広く使われています。 http://www.python.org/参照。

Object REXX

オブジェクト指向プログラミング(OOP)時代に対応した拡張版REXX。 http://www2.hursley.ibm.com/orexx/参照。

Tcl/Tk

Tool Command Language。詳しくは、http://www.tclconsortium.orgを参照してください。

awkやUNIXのシェル言語は、いくつかのUNIX-to-NTパッケージで入手できます。 ( UNIXツールのWin32移植版はどこにあるのでしょうか? 参照) 4NT及び4DOSスクリプティングはシェルスクリプティング言語の中では人気が高いものです。(4DOSはWindows 95/98上でのコマンドシェル問題のいくつかを解決します。 また、ちょっとした機能もあり、NT上でもよりよくなります。)



エクスプローラでperl.exeアイコンをダブルクリックしても、 カーソルが点滅している空のDOSウィンドウが開くだけです。

Perl for Win32 は Win32 用のコマンドラインプログラムで、エクスプローラからではなく、コマンドラインから実行するようになっています。

Perlスクリプトを実行する場合、まずメモ帳のようなテキストエディタを 使ってスクリプトを記述します。最初は次のようなプログラムがよいでしょう。:


    print "Hello, World!\n";

プログラムを(C:\temp\hello.plのような)ファイルに保存します。 それから、コマンドプロンプト の画面(よく間違ってDOS窓といわれているもの)を開いて、コマンド プロンプトから以下のように入力します。:


    C:\> perl c:\temp\hello.pl

これでHello, World!という文字が画面に表示されるはずです。 うまくいかない場合、環境変数PATHをセットするか、perl.exeまでのフルパス名で入力してみてください。

perl.exeには、作業を簡単にしてくれる気の利いたコマンドライン引数がいろいろと揃っています。詳しくはperlrunドキュメントを参照してください。

では、コマンドラインからではなくエクスプローラーから perlを起動したときに何が起きているのか、という元の質問に答えることにしましょう。 エクスプローラーから起動するのは、コマンドライン引数を付けずに perlを起動するのとだいたい同じことです。コマンドラインでスクリプトファイルを 指定せずにperlを起動すると、Perlプログラムは標準入力(通常はキーボード)から入力されるものとみなされます。

点滅しているカーソルはperlが入力を待っていることを示しています。 実際に、ここでキーボードからPerlプログラムを入力することができます。 そのプログラムを実行させるには、(Windowsシステムでend-of-fileのマーカーとして働く)コントロール-Zを入力します。



4DOSコマンドラインで、普通の.exeファイルのように拡張子や"perl"を付けずに スクリプト名を入力するだけでPerlスクリプトを実行するPerlを手に入れるにはどうすればよいのでしょうか?

perlとPerlスクリプトを関連付けるにはどうすればよいのでしょうか?も参照して下さい。

Win95/98では、AUTOEXEC.BATファイルに次のような行を追加します。


    SET .PL=C:\PERL\BIN\PERL.EXE

これで、拡張子を付けずに、<スクリプト名>を入力するだけでスクリプトを実行できるようになります。 スクリプトのあるディレクトリとは別のディレクトリから実行する場合でも、スクリプトがパスの通っている所にあれば実行可能です。

但し、これは4DOSでのみ有効であることに注意して下さい。 COMMAND.COMCMD32.EXECMD.EXEなどのシェルでは、やはり次のように入力する必要があります。


    perl scriptname.pl <arg> <arg> <arg>


ソースコードからperlをビルドすることはできますか?

Perlソースコードには、Perlをビルドする際の指示がすべて含まれています。 最新のPerlソースコードの入手先:


    http://www.perl.com/CPAN/src/latest.tar.gz

Perlのコンパイル時の指示については、ソースを解凍してREADME及びREADME.win32ファイルを読んで下さい。

Windowsでは、Win32コンパイラを使ってPerlをビルドするか、fork()などのUNIX機能のエミュレーションを提供する開発環境でビルドするかを選択することができます。 ネイティブのWin32コンパイラを使うと、 ODBC、ASP、ISAPI等のWin32APIと容易に連携できるようになります。 また、Win32ネイティブビルド版のPerl for Win32は広く利用されているので、その分テストもより多く行われていることになります。

他のWin32環境とうまく統合された開発ツールが必要な場合は、ネイティブなWin32でPerlをビルドする方を選択してください。 Win32上でUNIXの包括的エミュレーションを行う必要がある場合は、UNIXエミュレーションを提供する環境でビルドした方がよいでしょう。

かつては、ソースコードのUNIXismとPerl for Win32側の非互換性のために、Win32上ではモジュールやエクステンションの多くが動かないという時期がありました。 現在では(両陣営とも)状況は大きく変わり、大多数のモジュールはネイティブ版のPerl for Win32で動くようになっています。

Win32ネイティブでPerlをビルドする際は、次のようなCコンパイラが 使用できます。:

Microsoft Visual C++(商用製品)

コンパイルツール、API、ツールのドキュメント、統合開発環境を含むマイクロソフト社のコンパイラ。


    http://www.microsoft.com/visualc/
Borland C++ Builder (商用製品)

ボーランド社のC++には、Win32アプリケーションをビルドするための統合開発環境、コンパイルツール、ドキュメントが装備されています。


    http://www.inprise.com/bcppbuilder/
GCCまたはEGCSコンパイラを備えたMingw32ライブラリ(フリーソフトウェア)

GCCとEGCSは、どちらもWin32プラットフォームに移植されたフリーウェアで、高品質のコンパイラです。これらをフリーで利用できるMingw32と組み合わせて使うと、Perl及びエクステンションをビルドすることができます。 Mingw32ライブラリはCygwin32(下記を参照)用に開発されたコードをいくらか再利用しています。

EGCS/Mingw32バイナリの入手先:


    ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/

GCC/Mingw32バイナリの入手先:


    http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/
Cygwin32 (フリーソフトウェア)

Cygwin32 toolchainを使うと、Win32上でUNIXの開発・実行環境をほぼ実現することができます。 これは膨大なGNUツールの移植版で、Win32にはない多くのUNIX機能を提供するエミュレーションAPIを含んでいます。:


    http://www.cygnus.com/misc/gnu-win32


著者および著作権について

この FAQ は、元々Evangelo Prodromou evangelo@endcontsw.comが作成し、保守していたものです。 現在、この文書は、O'Reilly社のBrian Jepson及びActiveState社のDavid GroveとDavid Dmytryshynが改訂・更新しています。

このFAQはパブリックドメインですが、使用する場合はオリジナルの作者について明示してください。

ActiveState Home Page      Win32 FAQ