Perlはシステム管理及びWorld Wide Web上のプログラミングに広く 利用されているスクリプト言語です。それは UNIXコミュニティで想像され、UNIXへの強い傾倒がありますが、Win32プラットホーム 向けにも非常に有用です。 perl(小文字の'p')はPerl言語を解釈するプログラムなのです。
さらにPerlに関する情報を得るには以下のWWW URLを確認してください。:
Perlについてはいくつか良い本が出ています。近くの書店で尋ねてみて ください。特に二冊の本が挙げられます。一つは Larry Wall, Tom Christiansen, Randal L. Schwartzによる Programming Perl 2nd Edition(O'Reilly & Associates, 1996) で、 もう一つは Randal L. Schwartz による Leraning Perl (O'Reilly & Associates, 1993)です。 これらはperlのファンからそれぞれ“ラクダ本”(the Camel book)、“リャマ本” (the Llama book)と呼ばれています。このあだ名はそれぞれの本の表紙に 使われている絵から付けられています。 (訳注: Programming Perl 2nd Edtionの邦訳は1997年7月現在、まだ出版されて いません。年内には出るらしいですが。また、Lerning Perlの原書の第二版は 1997年8月発売予定です。)
もしあなたがPerlの初心者なら、よくわからないような単語が
このFAQにあるでしょう。上記の資料をあたってみてください。
Win32環境用の主なPerlインタープリターはPerl for Win32です。これは
ActiveWare, Inc. (元の Hip Communications)が Windows NTリソースキット
に添付するために Microsoft Corporationに対して開発したものです。
“Perl for Win32”について語るときはこのパッケージを意味します。
Perl for Win32のパッケージには、perlとPerlIS、そしてActiveWareによって
開発されたWin32固有のモジュールが含まれています。
perl 5.003レベルの Perl for Win32のベータバージョンが入手可能です。
question 1.13を参照してください。
Mortice Kerns Systems, Inc.による MKS Toolkit中の移植されたperlが
あります(http://www.mks.com/)。
これは様々なUNIX起源のツールを含んだパッケージです。
さらに OpenNT for Microsoft Windows NTのためにコンパイルされたものも
入手可能です
(http://www.softway.com/OpenNT/tw/contrib.html)。
OpenNTはWindows NTのPOSIXサブシステムを置き換えるもので、Softway Systems, Inc.
により作成されました。
[他にここで説明するようなものがあるかな? - ESP]
標準配布パッケージは主にUNIXシステム用のものです。そのコンフィグレーション
スクリプトにはUNIXのシェル言語が使われています。このために、
標準配布パッケージからperlを(Win32用に)ビルドすることは単純な
作業ではありません。
訳注: perl 5.004で、標準配布パッケージでもそのままWin32環境用に
コンパイルできるようになりました。
しかしその作業は既に行われています。Karl Martin Syringはperlを
GNU-Win32 開発システムでビルドしました。彼の移植したものは
http://www.edv.agrar.tu-muenchen.de/~syring/gnu-win32/perl.zip
から入手できます。
これをビルドするには、GNU-Win32が必要です。これはCygnus Support
(http://www.cygnus.com/misc/gnu-win32)
から入手できます。
Gary Ngは Micorsoft Visual C++でコンパイルできるように移植を
行いました。彼の移植したものは以下のアドレスから入手可能です。
http://www.endcontsw.com/pub/perl_win32.zip
これをビルドするには、この配布パッケージをあなたのperlディレクトリ
のwin32というサブディレクトリ
(標準配布パッケージから。os2サブディレクトリと同じようなもの)に
unzipします。
Perl for Win32 パッケージはanonymous FTPで、ActiveWare及び
CPAN(Comprehensive Perl Archive Network)からZIP アーカイブ(書庫)の
形で入手可能です。
ActiveWareからダウンロードするには、このディレクトリを見ましょう。:
ftp://ftp.activeware.com/ntperl/perl5.001m/CurrentBuild/
そこには四種類の配布パッケージがあります。一つはインテル x86マシンの
ためのもの、一つはDEC アルファマシンのためのもの、一つはPowerPCマシン
のためのもの、そしてもう一つはソースコードのパッケージです。これらの
パッケージにはXXX-i86.zip, XXX-Alp.zip, XXX-Ppc.zip, XXX-src.zip
といった名前が付いています。このXXXはそのビルド番号が入ります。
現在のビルド番号は110です。
CPANからダウンロードするには、以下のURLにアクセスしてください。
http://www.perl.com/CPAN/ports/win32/Perl5/perl5.001m/CurrentBuild/
実際には、あなたにもっとも近いCPANのミラーサイトにリダイレクトされます。
注意してください。
Perl for Win32パッケージはロングファイル名(LFN)を使っていますので、
PKZIPのような普通のzipファイルを扱うプログラムでは、正しくオープン
できません。[最新のPKZIPってLFNに対応している? -ESP]
このため、あなたはLFNを扱うことのできるzip file openerを入手する
必要があります。たとえば
アーカイブを展開するために、あなたの使っているハードディスクに
perlのディレクトリとなる新しいディレクトリを作ってください
("C:\Program Files\perl5" や"C:\perl5" がよい候補でしょう)。
アーカイブをそのディレクトリに展開し、ディレクトリ名がアーカイブから
展開された名前であることを確認してください(とても重要!)。
詳しくはあなたが使っているunzipperのドキュメントを参照してください。
ソースコードパッケージには、Visual C++ Version 2.xと 4.xのための
メイクファイルが含まれています。以下に示す手順はVisual C++ 4.xの
ためのものです [誰かVC++2.x用の手順を知らないか? あと、他のWin32用の
C++ コンパイラはどうなんだろう? -ESP]。
ソース配布はインテルをターゲットにしたものだけです。もしあなたが
DECアルファのような別のプラットフォーム用のものをビルドしたいのであれば、
ビルドの設定を弄りまわさなければならないかもしれません。
[誰かこれやってないか? -ESP]
まず最初に展開したアーカイブが正しく目標のディレクトリに展開されている
ことを確認してください。それから、
あなたの設定したperlディレクトリのdll-srcというサブディレクトリにある
プロジェクトファイルperl100.mdpをMicrosoft Developers Studioから
オープンします。
ターゲット"perl100 - Win32 Perl Intel DLL Release" をビルドします
(おやつでも食べ行こう。時間がかかるからね)。ビルドが完了すれば
perl100.dllというファイルがあなたのperlディレクトリのnttというサブディレクトリ
にできあがります。
さあ、あなたのperlディレクトリのexe-srcサブディレクトリにある
perl.mdpというプロジェクトファイルをオープンしましょう。
ターゲット"perl - Win32 Perl Intel Release" をビルドします。
同様に、"perl - Win32 PerlGlob Intel Release" というターゲットも
ビルドしなければなりません。これらはそれぞれperl.exeとperlglob.exeという
ファイルをnttディレクトリに作成します。
好みに応じて、ソースと一緒に配布されているエクステンションファイルを
ビルドすることもできます。
デフォルトでは存在しないdll-src\Releaseディレクトリにないperl100.libを、
エクステンションが検索することに注意してください。あなたはディレクトリ
を作ってlibファイルをそこにコピーすることもできますし、ビルドの設定を
エクステンションがdll-src\LibRelを参照するようにしてもよいです。
エクステンションをビルドすると、エクステンションバイナリ(.pllファイル)が
適当なLIBのサブディレクトリに作成されます。
最後のステップは install.batの実行です。これはあなたのperlディレクトリ
にあるバッチファイルのようなperlプログラムです。install.batを実行する
ことで、nttサブディレクトリからbinサブディレクトリへファイルを
コピーするのと同様にシステムにperlプログラムとPerlISを登録します。
"C:\Program Files\perl5"のように長いファイル名を使ったディレクトリに
インストールした場合、install.batを実行する前にそれをDOSバージョンの
ディレクトリ("cd C:\PROGRA~1\perl5"のように)に変更したいと思うかもし
れません。これはレジストリで読み取り可能な(readble)パスのみを
取ることを保証し、エラーに悩まされることを防止するでしょう。
Perl for Win32のインストールによって、レジストリに以下のキーを
(まだ存在していなければ)追加します。
BINやPRIVLIBの値はファイルの検索やロードのために使われます。
HTML-DOCSの値の目的は明確ではありません。
またインストールによって、環境変数PATHにあなたの使うperlバイナリのある
パスが、歴史的事情により追加される"."(カレントディレクトリ)と同様に
追加されます。
Microsoft Internet Information Server (IIS)がインストールされている
場合には、install.batはあなたが選択した拡張子(デフォルトでは.pl)を
IISのPerlISにあるスクリプトマッピングのレジストリキー
HKEY_LOCAL_MACHINE\System\Services\W3SVC\Parameters\Script Map
に関連付けします。
スクリプトのマップに関するより詳細な情報は
IISのドキュメントを参照してください。
コントロールパネルの Add/Remove Program section(あなたが持っていれば、
の話ですが)からPerl for Win32をアンインストールすることはできません。
あなたのオリジナルのperlディレクトリに uninstall.batという名前のファイル
があります。これを使って、install.batが作成したレジストリ設定を
クリアします。
unistall.batは Perl for Win32のファイルそのものは削除しません。
削除はエクスプローラーやファイルマネージャーからできますし、、あるいは
perlのディレクトリに移って"del [perl directory]\*.* /S /Q"とやっても
削除できます。
アクティブスクリプティングとは、Microsoftによる新しい技術で
HTMLのページにプログラムを埋め込んでそれをWWWクライアントやサーバーで
実行させるというものです。
これは特定の言語に依存しないように設計されているので、
Active ScriptをVisual Basic, JavaScript, Python, そして理論的には
perlでも記述できます。
あります。1996年の12月4日に、ActiveWareはPerlScriptのベータバージョン
をリリースしました。これはPerlのためのアクティブスクリプティング
エンジンです。
ftp://ftp.activeware.com/beta/PlSEi302.exe
あるいは CPAN の
http://www.perl.com/CPAN/ports/win32/Perl5/beta/PlSEi302.exe
同じディレクトリにあるPerl for Win32 5.003のバイナリか、ソースフォーマット
パッケージをダウンロードする必要があるでしょう
(質問 1.13参照)。
そこにはドキュメントがありませんが、幾つかのサンプルがあります。
ActiveScriping は OLE Automationのように動作しますので、
あなたが(OLE Automationに関する)ドキュメントを見て、さらに
ActiveScriptingのドキュメントをみれば、理解することができるでしょう
バッチ言語だとかQBASIC(Windows95やWindows NTに付属する16bitの
BASICインタープリター)が使えますが、本格的なプログラマーであれば
以下に挙げるような言語を使いたがるでしょう。
awkやUNIXのシェル言語が幾つかのUNIX-to-NTパッケージから入手できます
(question 4.7を参照)。
[他には? -ESP]
1996年 12月4日に ActiveWareは5.003レベルの Perl for Win32のベータバージョン
をリリースしました。これは5.001mレベルであるビルド100の多くの欠点を
修正しています。これは以下の場所で入手できます。
ftp://ftp.activeware.com/Perl-Win32/beta/
あるいはCPANでも可能です。
http://www.perl.com/CPAN/ports/win32/Perl5/beta/
ベータパッケージには四種類あります。
PerlIS(質問 2.2参照)や
各種RISCプロセッサ用の配布セットもあります。
このFAQの回答の多くはベータバージョンには適用されません。
Perl for Win32 は Win32 用のコマンドラインプログラムです。
エクスプローラからではなく、コマンドラインから実行するよう想定されています。
Perlスクリプトを実行したいのなら、まずメモ帳のようなテキストエディタを
使ってスクリプトを記述します。最初は次のようなプログラムが良いでしょう。
記述したプログラムをハードディスク上のファイル
("C:\temp\hello.pl"のような)に保存します。さあここで、コマンドプロンプト
のウィンドウ(時々“DOS ウィンドウ”と間違って呼ばれますが)を開いて、
プロンプトから以下の様に入力しましょう。
これで“Hello, World!”という出力がスクリーンに出てくるはずです。
ここで、あなたはperl.exeを環境変数PATHに含まれるディレクトリに置くか、
perl.exeのフルパス名を記述する必要があるでしょう。
perl.exe has a lot of nifty command-line arguments that can make your
work a lot easier. See the perlrun documentation page for details.
perl.exeはたくさんのコマンドライン引数を、あなたの作業を簡単にするために
取ります。詳しくはperlrunというドキュメントを参照してください。
元の質問に答えるために、(コマンドラインからではなく)エクスプローラーから
perlを起動したときに何が起きているかを説明します。大雑把にいうと、
エクスプローラーから起動したときと言うのはコマンドライン引数を付けずに
perlを起動したときと同じです。コマンドラインでスクリプトファイルを
指定せずにperlを起動した場合、perlはプログラムを標準入力、つまり
キーボードから受け取ろうとします。
点滅しているカーソルはperlがあなたの入力を待っていることを示しています。
あなたはここでキーボードからPerlプログラムをタイプすることができますし、
そして(Windowsシステムでファイルの終端として働く)コントロールZキーを
タイプすることでそのプログラムを実行させるように指示できます。
PerlIS.dllはPerl用の特別なインタープリタです。
(質問 2.2参照).
Microsoft Internet Information Server (IIS) に対するPerlISのセットアップ
は厄介なので、
install.batが代わって自動的(automagically)にインストールを実行します。
ですが、あなたがPerl for Win32をインストールするマシンでIISを使わないと
いうのであれば、あなたは尋ねられたときに"no"と答えるべきなのです。
多くの人々が"PerlIS.dll"が、通常のPerl for Win32を指しているメッセージ
であると混乱しているのです。そこが問題です。
もしこのエラーが出ても無視してください。Perlプログラムはちゃんと走る
はずです。あなたがインストール中に出るエラーがなぜ出るのかを知らないと
眠れない質だと言うのなら、uninstall.batを実行して、それから再度install.bat
を実行してください。して、"yes"の代わりに"no"と答えてください。
満足しました?
もしPerlIS.dllを他の ISAPIを使用可能なWebブラウザーと一緒に使いたい
というのであれば、手作業でセットアップする必要があるでしょう。
install.batはそのための作業をやってくれないでしょう。
ホームページへ戻る。
1.2. Win32プラットホーム向けで利用可能なPerlインタープリタは
どんなものがありますか?
1.3. 標準的な配布ソースコードから自分でperlをビルドできますか?
1.4. 利用可能なPerl for Win32インタープリタはどこにありますか?
1.5. Perl for Win32パッケージをunzipするにはどうすればいいのでしょうか?
1.6. ソースコードパッケージからPerl for Win32をビルドするには
どうすればいいのでしょうか?
1.7. OK。ダウンロードして、unzipし、任意にビルドしたところです。
次は何をすればいいでしょうか?
1.8. インストールはレジストリに何をするのですか?
1.9. Perl for Win32をアンインストールするにはどうすればいいのですか?
1.10. アクティブスクリプティングとは何ですか?
1.11. アクティブスクリプティング可能なPerlのバージョンはあるのですか?
1.12. Win32プラットホームで利用可能なスクリプティング言語は他に何がありますか?
1.13. Perl for Win32 5.003はどこにあるのですか?
1.14. エクスプローラで"perl.exe"アイコンをダブルクリックした時、
カーソルが点滅している空のDOSウィンドウが開きます。
何が原因なのでしょうか?
print "Hello, World!\n";
C:\> perl c:\temp\hello.pl
1.15. Perl for Win32をインストールする時、Internet Information Serverがないと
メッセージが出て、まだPerlIS.dllをインストールするかと訊いてきます。
何故ですか?
yesと言ってもエラーがあったと言ってきます。どうしてですか?
ご意見、ご要望は、
電子メールまたは
投稿にお願い致します。