その他
■ Perl 4 と Perl 5 の差異
◆ 説明
Perl 4 と Perl 5 の主な差異をまとめてみました。詳細はソースのコメントを参照してください。
◆ Perl 5 のプログラム
# (1) ライブラリ(.pl)よりモジュール(.pm)の使用が推奨されている
use Jcode; # Jcode.pm を読み込む
# (2) "..." の中に @ を書くときは \@ とする
$mail = "zoo\@xxx.yyy.zzz";
# (3) サブルーチンに & をつける必要が無い
func("私のメールアドレスは $mail です。"):
sub func {
# (4) local に加えて my も使用できる
my($msg) = @_;
# (5) パッケージ名の後ろはコロンコロン(::)
# (6) 参照渡しには参照(\...)を用いることが推奨されている
Jcode::convert(\$msg, "sjis");
print "[[$msg]]\n";
}
◆ Perl 4 のプログラム
# (1) モジュール(.pm)はサポートされていない
require "jcode.pl";
# (2) "..." の中に @ を直接書ける
$mail = "zoo\@xxx.yyy.zzz";
# (3) サブルーチンに & をつける必要がある
&func("私のメールアドレスは $mail です。"):
sub func {
# (4) my は使えない。local を使う。
local($msg) = @_;
# (5) パッケージ名の後ろはシングルクォート(')
# (6) 参照渡しには型グロブ(*...)を用いる
&jcode'convert(*msg, "sjis");
print "[[$msg]]\n";
}
■ OSがWindowsかUNIXかを判断する
◆ WindowsかUNIXかを判断する
Windows 上の ActivePerl では \ をフォルダとみなしますが、UNIX 上の Perl では \ をフォルダとはみなさないという仕組みを利用して、現在スクリプトが動作しているプラットフォームが Windows 系なのか、UNIX系なのかを判断することができます。
if (-d "\\") {
print "Windows\n";
} else {
print "UNIX\n";
}
■ flockがサポートされているか調べる(eval)
◆ flockがサポートされているか調べる(eval)
eval は {...} の間を Perl の文章として実行します。内部で致命的なエラーが発生した場合、通常なら Perl の処理が中断してしまいますが、eval で実行している文であれば、特殊変数 $@ にエラーメッセージを設定して処理を続けます。これを利用して、flock() など、プラットフォームによってサポートされていない関数を調べることができます。
open(IN, "xx");
eval { flock(IN, 2); };
if ($@) { print "flock()はサポートされていません。"; }
close(IN);
■ コマンドプロンプトを使いこなす
◆ コマンドプロンプトを使いこなす
Windows で Perl のプログラミングを行う際に必要となる、コマンドプロンプト(MS-DOSプロンプト)の使い方についてちょっとだけ説明します。
◆ 起動する
コマンドプロンプトは、[スタート]-[プログラム] または [スタート]-[(すべての)プログラム]-[アクセサリ] の中に、「コマンドプロンプト」や「MS-DOSプロンプト」から起動します。
◆ プロンプト
C:\> のようなものを プロンプト と呼びます。英語のプロンプト(prompt)には「(入力を)促すもの」という意味があります。プロンプトには通常、自分が現在参照しているフォルダ(カレントフォルダ)が表示されます。
C:\HomePage>
◆ フォルダを移動する
フォルダを移動するには cd(Change Directory)コマンドを用います。
C:\HomePage>cd \ ← トップフォルダに移動する C:\>cd Windows ← Windowsフォルダに移動する C:\WINDOWS>cd .. ← ひとつ上のフォルダに移動する C:\>D: ← D:ドライブに移動する
◆ ファイルの一覧を表示する
ファイルの一覧を表示するには dir(Directory)コマンドを用います。
C:\HomePage>dir ← ファイルの一覧を表示する ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 9C80-39ED です C:\HomePage のディレクトリ 2002/11/16 21:15 <DIR> . 2002/11/16 21:15 <DIR> .. 2002/11/16 21:15 1,234 index.htm 2002/11/16 21:15 823 test.pl
Copyright (C) 2002 杜甫々