その他

■ 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 杜甫々