Perl 小品集 ─ ej

#!/usr/bin/perl
# ej.pl
# 「英辞郎」検索
#
# 準備:「英辞郎」のテキスト形式の辞書を EUC に変換し
# eiwa.dic、waei.dic を作っておく

# 辞書ファイルディレクトリーと一時ファイルを指定
$dicdir = "/home/penguin/ej";
$temp = "$dicdir/temp.txt";

# 辞書ファイルの選択
($dic) = @ARGV;
# 入力がなければ、デフォルトを選ぶ
if ($dic eq '') {
    $eiwa = "$dicdir/eiwa.dic";
    $waei = "$dicdir/waei.dic";
    }
# 指定した辞書を選ぶ
else {
    $eiwa = "$dicdir/$dic";
    $waei = "$dicdir/$dic";
    }

# 単語の入力
while (1) {
    print "WORD: ";
    $word = <STDIN>;
    chomp $word;
    # 入力がなければ終了
    if ($word eq '') {
        exit 0;
        }
    # 入力を繰り返す
    else {
        &search_dic ($word);
        }
    }

# 検索と表示
sub search_dic
{
local ($word) = @_;
# 検索モード
# 単語の最後に ! をつけた場合
if ($word =~ /!$/) {
    $word =~ s/!$//;
    print "Searching ...\n";
    system "grep '$word' $eiwa > $temp";
    }
# 英和辞典
# 単語が英数字だけの場合
elsif ($word =~ /^[0-9a-zA-Z]/) {
    # look のオプション
    # -d アルファベットと数字だけを対象にする
    # -f アルファベットの大文字、小文字を区別しない
    # -t 文字列の最後の文字を指定
    system "look -f '■$word' $eiwa > $temp";
    }
# 和英辞典
# 単語が英数字以外の場合
else {
    system "look -f '■$word' $waei > $temp";
    }
# less でファイルを見る
system "less $temp";
}



[INDEX]